2013-04-25 24 views
5

Debuguję istniejącą bibliotekę C z gdb 7.4
Próbuję zbadać zmienną, która niestety została zadeklarowana z tą samą nazwą jako jego typ:Jak mogę sprawdzić w gdb zmienną, która ma taką samą nazwę jak jej typ

extern const enum rtx_class rtx_class[NUM_RTX_CODE]; 

Teraz po prostu nie mogę znaleźć sposobu na zbadanie tej zmiennej. p rtx_class zwraca Próba użycia nazwy typu jako wyrażenia, to samo z p &rtx_class i p rtx_class[0].
Jednak, info var rtx_class działa i zwraca const rtx_class rtx_class [145] zgodnie z oczekiwaniami.

Każdy pomysł?

+1

dla mnie to dobrze dla teksty stałe (gdb 7.4), ale dla structs to było dla al Czas ong: http://sourceware.org/bugzilla/show_bug.cgi?id=7737 – dbrank0

Odpowiedz

5

Spróbuj obejść ten problem. Dla Państwa binarny zrobić coś takiego:

nm swój wykonywalne | grep rtx_class

należy uzyskać adres (powiedzmy to 0xabcdef, zakładając, że jest to zmienna globalna Następnie w gdb zrobić coś takiego:

. druk * (rtx_class *) (0xabcdef + sizeof (rtx_class) * n)

ten powinien wydrukować rtx_class [n]. Albo przynajmniej nie w moim prostym testcase.

+0

Ładne obejście. Pracuje dla mnie. –

Powiązane problemy