2016-10-25 9 views
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 
    }, ... 

私の説明はありますか? また、これにはヒント/より良い解決策を教えてください。

答えて

1

)が不足しているようです。

define print_array 
    print *($arg0)@(sizeof($arg0)/ sizeof($arg0[0])) 
end 
関連する問題