1
gdbのpython関数を書いて、 配列を印刷して、毎回同じ行を入力するようにしました。なぜ配列を出力できますが、gdbを使って構造体の配列を出力することはできませんか?
define print_array
print *($arg0)@(sizeof($arg0)/ sizeof($arg0[0])
end
期待のようにそれは動作しますが、私は構造体の配列を印刷しようとすると、私は次のエラーを取得する:
>>> print_array opcode_list
A syntax error in expression, near `'.
>>>
私は手でそれを入力すると、それはエラーなしで動作します。
>>> print *(opcode_list)@(sizeof(opcode_list)/sizeof(opcode_list[0]))
$2 = {[0] = {
opcode_str = 0x401484 "halt",
output = 0
}, [1] = {
opcode_str = 0x401489 "pushc",
output = 1
}, ...
私の説明はありますか? また、これにはヒント/より良い解決策を教えてください。