Название: Просмотр в режиме отладки QString [решено] Отправлено: BELNETMON от Декабря 24, 2009, 09:28 Очень страшно, но эксперимент повторял 5 раз. Суть: при срабатывании точки останова инициализированная и не пустая переменная QString в 99% случаев показывается пустой. И в наблюдении за переменными, и в подсказках отладчика.
Исходные данные: OS WinXP, Win7 Qt Creator 1.3.0, Qt 4.6.0 (было и на более ранних версиях) Отладчики и Gdb и Cdb Не знаю как дальше жить. Спасает только вывод в консоль по месту брекпоинта, но это ж портит всю радость. Далее на примере типовой случай. Переменная создана и ей присвоено значение. Содержимое в отладчике- пусто. Аналогично в хинте дебагера. (http://belnetmon.bn.by/sm/lj/photos4/qt_debug_qstring.gif) (http://belnetmon.bn.by/sm/lj/photos4/qt_debug_qstring_hint.gif) Название: Re: Просмотр в режиме отладки QString Отправлено: ilot от Декабря 24, 2009, 12:13 Для правильной работы отладчика программа должны собираться со специальными отладочными флагами - иначе нужная
информация не будет включаться в исполняемый файл. 99%, что дело именно в этом ;) Цитировать Очень страшно, но эксперимент повторял 5 раз А как на счет локальных переменных других типов? Попробуй создать рядом локальные переменные типов int, double (и т.п.), и проверь, будет ли отладчик отображать их иниц. значения. Если нет - значить не были включены нужные флаги. P.S. У меня в VS2008 приведенный код нормально отлаживается.. Название: Re: Просмотр в режиме отладки QString Отправлено: BELNETMON от Декабря 24, 2009, 12:36 Переменные других типов замечательно видны
После написания этого сообщения порылся в интернете - проблема таки есть. Название: Re: Просмотр в режиме отладки QString Отправлено: xokc от Декабря 24, 2009, 20:44 А debuger helper собран?
Название: Re: Просмотр в режиме отладки QString Отправлено: BELNETMON от Декабря 24, 2009, 21:13 Буду благодарен, если поясните, что в контексте моего инструментария нужно сделать?
Чего-то кроме установки QtCreator не делалось Название: Re: Просмотр в режиме отладки QString Отправлено: xokc от Декабря 25, 2009, 21:34 В настройках QtCreator есть пункт Отладка и там что-то в духе "помощник отладчика (debugger helper)" - дома у меня Creator не установлен, поэтому точно не скажу. Там же есть кнопочка "Собрать".
Название: Re: Просмотр в режиме отладки QString Отправлено: BELNETMON от Декабря 25, 2009, 23:32 Нет, нет там уже такого давно
Название: Re: Просмотр в режиме отладки QString Отправлено: Igors от Декабря 26, 2009, 00:37 Далее на примере типовой случай. Переменная создана и ей присвоено значение. Содержимое в отладчике- пусто. Аналогично в хинте дебагера. В данном случае "переменная" - экземпляр довольно сложного класса. "Присвоено значение" звучит неуместно - был вызван оператор присваивания который может делать все что угодно, в данном случае он конвертирует "AAA" в Unicode. С какой стати Вы рассчитываете увидеть в отладчике "AAA" если его в данной QString нет физически? Ваша критика справедлива в том смысле что нормальный отладчик для структуры/объекта должен показать все ее члены (и private тоже), как, напр, делает Gdb. Но даже там просмотреть содержимое непросто :) Название: Re: Просмотр в режиме отладки QString Отправлено: break от Декабря 26, 2009, 01:08 Нет, нет там уже такого давно Все там есть! Tools-->Options-->Debugging Helper-->Use debugging helper --- поставить галочку - которая снимается кстати как раз для того чтобы например иметь возможность смотреть QString -- его приватные члены C++ класса а не только содержимое кутешной строки, но чтобы это работало надо в Tools->Options-->Qt4-->QtVersion напротив соответственно активной версии Qt нажать Rebuild (для создания плагина Debugging Helper если он не создан) Название: Re: Просмотр в режиме отладки QString Отправлено: BELNETMON от Декабря 26, 2009, 02:05 Спасибо, добрый человек!
Помогло. Название: Re: Просмотр в режиме отладки QString [решено] Отправлено: jekazz от Декабря 28, 2009, 21:40 А мне не помогло! Всё собралось. В настройках стоит галочка "Использовать помощник отладчика". В Настройках версий появилась галочка в колонке "Помощник отладчика". В папке %QTDIR% появилась папка qtc-debugging-helper а в ней в подпапках debug и release появился gdbmacros.dll. Но всё равно не отображает значения QString и т.д. И в режиме отладки QTCreator с кнопками управление отладкой пишет "Помощники отладчика не найдены". При запущенной отладке ни один процесс не использует файл gdbmacros.dll.
Windows XP, Qt 4.6.0, MinGW, Gdb 7.0. Ставилось отдельно, не из QT SDK. Всё работает, кроме помощника :(. Что делать? Название: Re: Просмотр в режиме отладки QString [решено] Отправлено: break от Декабря 28, 2009, 22:45 попробуй указать откуда юзать debugger helper - там есть сосответствующий пункт --> "Use debugger helper from custom location"
А креатор то последний? и Qt? - в одной из версий была проблема с этим. Название: Re: Просмотр в режиме отладки QString [решено] Отправлено: jekazz от Декабря 29, 2009, 10:16 Qt Creator 1.3.0, Qt 4.6.0 - то есть всё последнее, самое новое. Да я вот и думаю указать путь к помощнику. Но вот какой файл указывать? Пробовал выбрать gdbmacros.dll - не помогло :(
Название: Re: Просмотр в режиме отладки QString [решено] Отправлено: reg_edit от Декабря 30, 2009, 19:13 Кстате у меня тоже были проблемы с Debugger Helper ом..
Если Qt Creator запускать с правами админа то всё окей показывается, а если под простым пользователем (я под ним сижу) то не показывается... у кого проблемы попробуйте запустить под админом . Название: Re: Просмотр в режиме отладки QString [решено] Отправлено: jekazz от Декабря 30, 2009, 20:42 Запускаю от пользователя с правами админа :(
Название: Re: Просмотр в режиме отладки QString [решено] Отправлено: Sergey B. от Декабря 31, 2009, 16:06 Надо открыть закладку Qt - и там нажать кнопку сборки Debug helper. Чтобы оно собралось..
|