換句話說,是否有命令可以在某個地址找到該符號,同時使用ptype顯示該符號的詳細信息? 或者如果沒有,我怎麼能寫一個用戶定義的命令滿足這一需要?如何將兩個不同的gdb命令「info symbol」和「ptype」合併爲一個?
例如,現在我可以首先在地址使用「信息符號」命令來獲得數據結構的名字(ngx_errlog_module_ctx)不是使用P型顯示這樣的數據結構的詳細信息:
(gdb) info symbol 0x80b4568
ngx_errlog_module_ctx in section .data of /usr/local/nginx/sbin/nginx
(gdb) ptype ngx_errlog_module_ctx
type = struct {
ngx_str_t name;
void *(*create_conf)(ngx_cycle_t *);
char *(*init_conf)(ngx_cycle_t *, void *);
}
,但現在,我怎麼能寫一個用戶difined命令(ptype_with_address),我可以使用這樣的:
ptype_with_address 0x80b4568
ngx_errlog_module_ctx in section .data of /usr/local/nginx/sbin/nginx
type = struct {
ngx_str_t name;
void *(*create_conf)(ngx_cycle_t *);
char *(*init_conf)(ngx_cycle_t *, void *);
}
我想這樣做,因爲我是研究nginx的代碼,我想編寫一個用戶定義的命令來顯示所有ngx_modules的詳細信息,包括每個模塊的CTX成員變量。