Как сделать окно отладки "Локали и выражения" работоспособным с помощью gcc 4.8? - программирование
Подтвердить что ты не робот

Как сделать окно отладки "Локали и выражения" работоспособным с помощью gcc 4.8?

Я использую gcc 4.7 и gcc 4.8 вместе с QtCreator 2.7.1.

Проблема заключается в том, что когда я использую gcc 4.8, я не могу видеть значения моих переменных в окне "Локали и выражения" в режиме отладки:

enter image description here

Пока gcc 4.7 работает нормально:

enter image description here

Я попытался восстановить это, играя с параметрами QtCreator, но безрезультатно.

Я не уверен, если это имеет какое-то отношение к версии компилятора, но проблема исчезает, как только я перестраиваю старую версию.

4b9b3361

Ответ 1

Вероятно, причина в том, что gcc 4.8 использует по умолчанию более новый формат для хранения отладочной информации (http://gcc.gnu.org/gcc-4.8/changes.html). Если вы используете версию gdb менее 7.5 (см. gdb --version), вам необходимо предоставить аргумент -gdwarf-3 для компиляции с информацией об отладке с помощью gcc 4.8.

Ответ 2

Тот же самый симптом может возникнуть из-за того, что отладчик слишком новый, а не слишком старый!

В этом случае речь идет не о версии GDB, а о версии Python, которая была встроена в нее, когда она была построена. Ubuntu 13.10 поставляется с GDB, который построен со встроенным Python3 вместо Python2. Qt Creator (на момент написания этой статьи) несовместим с этим.

Вы можете проверить, есть ли у вас Python2 GDB, запустив его с терминала и набрав:

(gdb) python print sys.version

Если вы получаете недопустимую синтаксическую ошибку, вы, вероятно, получили Python3. Это требует скобок вокруг того, что нужно печатать, поэтому попробуйте:

(gdb) python print(sys.version)

Когда это вернется с ответом 3.x.x, скрипты отладки Qt Creator Python не будут работать (пока). Поэтому вам нужно получить GDB с Python2.

Здесь моя запись в блоге: Отладчик QtCreator не показывает локалей в Ubuntu 13.10.

Ответ 3

В моем случае это то, что описал HostileFork: ubuntu 13.10 + Qt Creator 2.8

Этот bug исправлен в Qt Creator 3, еще не выпущен.

Чтобы решить эту проблему без перекомпиляции GDB, просто используйте кандидат на выпуск Qt Creator 3.

Существуют доступные сборки на веб-сайте проекта Qt или PPA (ppa: p12/qtcreator) с последними git версия, но сборка сломана на сегодняшний день.