Просмотр wxWidgets переменых в GDB Ubuntu

October 29th, 2011 Begemot

GDB к сожалению не самый удобный отладчик на свете, но что делать… А мой (7.2 под ubuntu 11.04) еще падал все-время, если в функции где я ставлю брейк, есть определение wxString, типа wxString str = “some string”; падал с таким сообщением

Breakpoint 2, BegUtils::GetImageFromZipResource (pathURL=…, fileName=…, type=wxBITMAP_TYPE_PNG) at /media/data/work/Flashnote/src/Utility/begutils.cpp:166
/media/data/work/Flashnote/src/Utility/begutils.cpp:166:4941:beg:0x82977e3
>>>>>>cb_gdb:
> info locals
warning: static field’s value depends on the current frame – bad debug info?
/build/buildd/gdb-7.2/gdb/findvar.c:427: internal-error: read_var_value: Assertion `frame’ failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.

Если определения строки нет, то заходил, но падал стоило провести курсором над параметром функции – строке. Вообщем дебажить было вообще невозможно.

Решение такое:

CodeBloks -> Settings -> Compiler and debugger settings -> Debugger settings -> И там в первый едит бокс добавляем строку source  /media/data/const/wxWidgets/misc/gdb/print.py

После чего падения прекращаются, и о чудо, отладчик начинает показывать значение wxString. Жизнь сразу становится много лучше:)

Еще почитать можно тут Pretty printing wxStuff in gdb и тут


Если пост полезен для вас вы можете подписаться на RSS или мы можем доставлять вам новые посты прямо в ваш почтовый ящик.