言い換えると、アドレスでシンボルを見つけることができるコマンドはありますか? ptype show this symbol's detail info を使用しますか? または、存在しない場合、このニーズを満たすユーザー定義コマンドをどのように記述できますか?</p>
たとえば、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 *);
}
しかし今、次のように使用できるユーザー定義のコマンド (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のコードを研究しているので、これをやりたいです。各モジュールのctxメンバー変数を含めて、すべてのngx_modulesの詳細情報を表示するユーザー定義コマンドを書きたいです。