gdb ソース コードに新しいコマンドを追加したいのですが、add_cmd を使用してそれを行うことができます。
コマンド バックエンドで、いくつかの変数の内容を読み取り、より適切な形式でデータを出力したいと考えています。
次のコードを使用して変数アドレスを取得できます。
struct symbol *sym;
sym = lookup_symbol ("my_variable_name", get_selected_block (&context_pc), VAR_DOMAIN, NULL);
printf_filtered ("Symbol %s is ", sym->ginfo.name);
printf_filtered (" at address 0x%x\n", SYMBOL_VALUE(sym));
これにより、変数のアドレスが得られます。
(gdb) my_command
Symbol my_variable_name is at address 0x8049684
ただし、この変数の内容を提供する API を見つけることができません。同じことで助けが必要です。