gdb と libbfd を使用して、elf ファイルからグローバル変数情報を取得し、表示しています。libbfd から次のデータを取得できます: グローバル変数の名前、アドレス、およびサイズ。gdb と gdb\MI (ptype、whatis、-var-create & -var-list-children) を使用して、変数とその子の型を取得します。
すべての子の親からアドレス\サイズ\オフセットを取得するにはどうすればよいですか?
例えば
type = struct {\n"
unsigned char count;\n"
unsigned char time;\n
}\n
この型の変数 A がアドレス 0x000100 にある場合、A.count がサイズ 0x1 の 0x000100 にあり、A.time がサイズ 0x1 の 0x000101 にあることを示したいと思います。
編集: gdb は DWARF 情報を読み取ることができると読みましたが、gdb からこの情報を取得する方法がわかりません。