2014-09-08 5 views
1

Попытка отладки приложения, написанного в Qt на mac (10.6.8). Qt 4.8.6, QtCreator 3.2.0, настроить отладчик системы GDB на /usr/bin/gdb и компилятора GCC-4.2Невозможно запустить отладчик Qt на Mac OSX

Я хочу, чтобы отладить код ...

я получаю в выходном окне приложения

Debugging starts 
Debugging has failed 
Debugging has finished 

(и никакие точки останова не попали, ничего не началось в коде)

Я открыл окно журнала отладки, а только подозрительные вещи, которые я видел, были

.... 
    111^error,msg="Undefined command: \"python\". Try \"help\*.* 
    NOTE: ENGINE SETUP FAILED 
    State Changed From EngineSetupRequested(1) to EngineSetupFailed(2) 
    HANDLE RUNCONTROL FINISHED 
    ..... 

На левом, некоторые из команд были

109-interpreter-exec console "python sys.path.insert(1, "/Volumes/QtCreator/..." 
110-interpreter-exec console "python sys.path.append("/usr/bin/data-directory/ python)" 
111-interpreter-exec console "python from gdbbridge import *" 

Я проверил, что установлен питона ... я могу типа питона из любой точки и получить командную строку, так что на системном пути ...

Я прочитал что-то о том, что нужно подписать отладчик fsf, но тот, который я использую, не является отладчиком fsf?

Что можно сделать для отладки моих приложений в macx?

Edit: Пробовал GDB из командной строки, с приложением в качестве аргумента

GNU gdb 6.3.50-20050815 (Apple version gdb-1518) (Sat Feb 12 02:52:12 UTC 2011) 
... 
This GDB was configured as "x86_64-apple-darwin"... 
warning: Unable to read symbols for QtSvg.framework/Versions/4/QtSvg (file not found). 
warning: Unable to read symbols from "QtSvg" (not yet mapped into memory). 
warning: Unable to read symbols for QtGui.framework/Versions/4/QtGui (file not found). 
warning: Unable to read symbols from "QtGui" (not yet mapped into memory). 
warning: Unable to read symbols for QtCore.framework/Versions/4/QtCore (file not found). 
warning: Unable to read symbols from "QtCore" (not yet mapped into memory). 
warning: Unable to read symbols for QtNetwork.framework/Versions/4/QtNetwork (file not found). 
warning: Unable to read symbols from "QtNetwork" (not yet mapped into memory). 
Reading symbols for shared libraries . 
... some warnings that .o is more recent than .dylib in dependent libs... but that I don't have to step into so I don't care... 
... 
warning: Could not find object file "/usr/llvm-gcc-4.2/bin/../lib/gcc/i686-apple-darwin11/4.2.1/x86_64/crt3.o" - no debug information available for "darwin-crt3.c". 
.... done 

Так что я типа запуска

Program received signal EXC_BAD_ACCESS, Could not access memory. 
Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000000 
0x00007fff83872c00 in strlen() 

Я не знаю, где это (я но на самом деле не может его увидеть), или если это фактический указатель на строку или что-то еще ...

Я не знаю, где будут точки останова, весь источник очень длинный и co Есть много и много файлов, поэтому я действительно не знаю, как я могу это сделать с помощью gdb из командной строки ...

Но, похоже, он начал, не жалуясь на python?

Предупреждения в начале - может ли это означать, что есть еще надежда, что можно каким-то образом настроить gdb для работы с Qt, если он узнает о своих библиотеках?

Кстати ... Поиск недостающих библиотек ... QT 4.8.4 debug libraries not found on Mac OSX

Я пытался заменить мой отладчик (в Qt) с помощью lldb и QMAKE - в обоих случаях я получил сообщение об ошибке «Не удалось создать отладчик двигатель типа «нет двигателя»»

Edit: Еще одно предложение я про это читал пересобрать Qt Creator Binaries, чтобы добавить символы отладки ... Я надеюсь, что это не то, что я должен сделать, потому что

«Примечание: с Qt Creator 3.2 мы отбрасываем sup порт для OS X 10.6 (Snow Leopard). Техническая причина этого заключается в том, что Apple не поддерживает какой-либо C++ 11 в этой версии ОС. Конечно, это не влияет на то, на каких платформах вы можете запускать приложения Qt. Но невозможно запустить двоичные файлы Qt Creator 3.2 на 10.6, и также невозможно скомпилировать Qt Creator 3.2 на 10.. 6 с цепями инструментов, предоставленной компанией Apple»(от примечания к выпуску)

Update: Я был в состоянии найти причину ошибки выше (KERN_INVALID_ADDRESS) путем размещения мильона QDebug() заявления ... Хотя это не то, что я пытаюсь выполнить, одна ошибка из многих.

У меня все еще много ошибок ... Прикрепление отладчика было бы замечательно. Я перечислил необходимые библиотеки для программы - они, кажется, существуют Не уверены, являются ли они «отладкими» или «выпущенными» библиотеками .... Но я не пытаюсь переходить через источники Qt, так почему это имеет значение, если у меня есть отладочные символы для них? И если они были «выпущены» «тип libs, то вся моя программа, встроенная в« debug », не выполнит или даже не построит? Поскольку я создаю свой код в режиме «Отладка», и он выполняется, библиотеки должны быть правильными, верно?

Так запутанным ...

+0

Попробуйте запустить gdb в командной строке с вызовом «gdb /path/to/application.app» и посмотреть, есть ли у этой проблемы. После запуска gdb введите «run», чтобы начать отладку. – TheDarkKnight

+0

@ Merlin069, я попробовал - посмотри правду ... может быть, есть надежда? – Thalia

+0

Если вы запустите otool -L в бинарнике в комплекте приложения, он покажет вам, где он ищет эти библиотеки. Взгляните на этот ответ: http://stackoverflow.com/questions/18780602/automatically-include-qt-libraries-in-the-app-bundle-deploying-in-mac/18781575#18781575 – TheDarkKnight

ответ

0

QtCreator 3.2 (и несколько версий до этого) требует GDB, который имеет Python сценариев с поддержкой (или LLDB или CDB на Windows). На Mac GDB Apple не имеет сценариев на Python и поэтому не может использоваться с Qt Creator. FSF GDB работает для некоторых проектов на Mac, но в целом LLDB там предпочтительнее.

Ваш «GNU gdb 6.3.50-20050815 (версия для Apple gdb-1518)» - это такая конструкция Apple, не поддерживающая Python.

Смежные вопросы