Не удается заставить Qt найти помощника по отладке

Это своего рода продолжение этой темы - к сожалению, в то время у меня не было никакого прогресса, поэтому я подумал, что начну все сначала. Я постоянно получаю это в журнале отладки (QtCreator 2.3.1, Qt 4.7.3, gdb 7.2):

Синтаксическая ошибка в выражении, рядом с 0'.\n" 295^error,msg="A syntax error in expression, near0 '. "&" Сценарии Python не поддерживаются в этой копии GDB. \ N "296 ^ error, msg =" Сценарии Python не поддерживаются в этой копии GDB. "&" Сценарии Python не поддерживается в этой копии GDB. \ n "Ошибка 297 ^, msg =" Сценарии Python не поддерживаются в этой копии GDB. "&" Сценарии Python не поддерживаются в этой копии GDB. \ n "Ошибка 298 ^ , msg = "Сценарии Python не поддерживаются в этой копии GDB." & "Неопределенная команда: \" bbsetup \ ". Попробуйте \ "help \". \ N "Ошибка 299 ^, msg =" Неопределенная команда: \ "bbsetup \". Попробуйте \ "help \". "DБиблиотека помощника отладки не найдена в. &" Source /home/matt/QtSDK-4.7.3/pythongdb/gdb\n "&" / home / matt / QtSDK-4.7.3 / pythongdb / gdb: 1: Ошибка в исходном командном файле: \ n "&" Неопределенная команда: \ "\". Попробуйте \ "help \". \ N "Ошибка 300 ^, msg =" / home / matt / QtSDK-4.7.3 / pythongdb / gdb: 1: Ошибка в исходном командном файле: \ nНеопределенная команда: \ "\". Попробуйте \ "help \". "&" Неопределенная команда: \ "bbsetup \". Попробуйте \ "help \". \ N "Ошибка 301 ^, msg =" Неопределенная команда: \ "bbsetup \". Попробуйте \ "help \". "DБиблиотека помощника отладки не найдена в. 302 ^ done‹ 303set substitute-path / var / tmp / qt-src / usr / include

Конкретная проблема заключается в том, что без помощника по отладке я не могу видеть содержимое QStrings и многих других структур данных во время процесса отладки, что делает его гораздо более трудоемким. Приведенные выше сообщения об ошибках симптоматичны, проблема возникает, когда gdb не может найти помощника отладки.

В любом случае, глядя на обсуждение, указанное в ответе в приведенной выше ветке, я искал разные версии gdb в своей системе, но каждая из них вызвала одну и ту же ошибку (конечно, с соответствующим изменением пути), включая версию 7.3.1 когда я его скачал. Я также нашел libDebuggingHelper.so, но размещение его в разных местах тоже не помогло. Наконец, посмотрев на ./configure --help для gdb, я не увидел никаких вариантов включения / отключения python в сборке. Кто-нибудь знает, как я могу заставить это работать?


person Matt Phillips    schedule 05.12.2011    source источник


Ответы (3)


Этот сайт утверждает, что вам необходимо настроить GDB с помощью

./configure --with-python
person Tim Meyer    schedule 05.12.2011
comment
Я пробовал это, получил checking whether to use python... yes checking for python... (cached) /usr/bin/python checking for python2.6... no configure: error: python is missing or unusable после $ sudo make install. Но $ cd /usr/bin, $ ./python говорит, что я использую версию 2.6.5. Знаешь, в чем дело? - person Matt Phillips; 07.12.2011
comment
Вам необходимо установить python-2.6-dev пакет. Сам python происходит от python-minimal или чего-то подобного, и его недостаточно для разработки вещей, которые зависят от libpython (например, GDB). - person Employed Russian; 07.12.2011
comment
@ Трудоустроенный русский У-у-у! Это сработало. Задача решена. NB 'sudo apt-get install python-dev' была необходимой командой. - person Matt Phillips; 07.12.2011

Из сообщения об ошибке довольно ясно, что созданный вами GDB не имеет встроенной поддержки Python.

В gdb/config.log найдите сообщения типа checking whether to use python и узнайте, почему GDB решил не использовать Python в вашей системе.

Возможно, вам нужно установить пакеты разработки Python?

После того, как вы настроили GDB для использования Python, простой способ проверить, правильно ли скомпилирована поддержка Python:

(gdb) python print "hello"

Если это напечатает что-то другое, кроме hello, вы все равно не там, где хотели бы быть.

person Employed Russian    schedule 05.12.2011

Я решил проблему с

sudo apt-get install gdb-multiarch

Спасибо @ Employed-Russian за то, что позволили мне проверить, действительно ли GDB поддерживает python.

Мне пришлось использовать синтаксис

(gdb) python print("Hello")

Чтобы получить правильный ответ от python в GDB.

person richelbilderbeek    schedule 19.08.2016