6

gdb 7.4
を使用して既存の C ライブラリをデバッグしています。残念ながら、型と同じ名前で宣言された変数を調べようとしています。

extern const enum rtx_class rtx_class[NUM_RTX_CODE];

今、私はこの変数を調べる方法を見つけることができません. 型名を式として使用しようとしていp rtx_classます。これはand と同じです。 ただし、期待どおりに動作し、 const rtx_class rtx_class[145] を返します。p &rtx_classp rtx_class[0]
info var rtx_class

何か案が?

4

1 に答える 1

6

この回避策を試してください。バイナリについては、次のようにします。

nm your-executable |grep rtx_class

アドレスを取得する必要があります(これがグローバル変数であると仮定して、0xabcdefだとしましょう。次に、gdbで次のようにします:

print *(rtx_class*)(0xabcdef+sizeof(rtx_class)*n)

これにより、rtx_class[n] が出力されます。または、少なくとも私の単純なテストケースではそうです。

于 2013-04-25T12:08:57.703 に答える