2017-01-20 5 views
0

У меня OSX Yosemite 10.10.5, QtCreator 4.1.0, Qt 5.7.0 и Xcode 7.2.1.Отладка завершается с QtCreator на OSX

Если я пишу какую-либо собственную программу на C++ в QtCreator (console, gui - anything), я не могу отладить эту программу от QtCreator. Точки останова игнорируются, программа выполняется без паузы и работает до завершения независимо от того, что я пытаюсь сделать.

Я пробовал LLDb Xcode, систему GDB и Homebrew GDB в качестве отладчиков. версии GDB не запускаются. Домашняя версия GDB была кодирована.

Это все, что использовалось (несколько лет назад), просто прекрасно работает, и я не понимаю, что могло измениться.

Любопытно, что если я создаю исключение внутри программы - например, доступ через нулевой указатель, отладчик показывает мне, где это происходит так, как я ожидал бы, по-видимому, отладчик работает, но просто обрабатывает меня полным презрение.

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

Любые предложения?

+1

Теперь я работаю с очень похожей конфигурацией, и это отлаживает, как шарм. Пожалуйста, разместите настройки сборки/компиляции/запуска проекта, а также настройки отладчика. Вы можете использовать скриншоты для этого. Я не могу вспомнить, сделал ли я что-нибудь особенное, чтобы включить конфигурацию. В OSX я использую собственный компилятор Apple из фреймворка. – AlexanderVX

+0

Это может произойти, если вы действительно не компилируете с помощью отладочных символов или если пути к файлам в отладочной информации не соответствуют путям файлов, которые вы открыли в Qt Creator (это может произойти при компиляции в '/ tmp') , «Window> Views> Debugger Log» в режиме отладки может также пролить некоторый свет. Что касается GDB от Homebrew: Qt Creator требует поддержки скриптов python в отладчике, возможно, это не включено для версии Homebrew? – E4z9

+0

@ E4z9: журнал отладки бесполезен. Нет очевидных сообщений об ошибках или предупреждений. Тем не менее, я заметил, что вызов setupInferior script содержит это: «breakonmain»: 0, который объясняет, почему программа просто выполняется немедленно. Я не вижу места, чтобы установить это поведение. –

ответ

1

Эта версия qtCreator (4.1.0) увидела возврат предупреждения о том, что каталог сборки находится на том же уровне, что и каталог проекта. В Windows это делается автоматически. Моя установка в Mac не подходит. (Возможно, я немного перепутал - не помню).

Итак - если каталог сборки находится внутри каталога проекта, отладка завершится неудачно. Переместите каталог сборки на тот же уровень, что и каталог проекта, и все работает нормально.

Вы можете установить каталог по умолчанию в диалоговом окне настроек/Build & Запустить диалог. Путь должен начинаться с ../

Build and Run settings

Вам нужно будет думать о структуре папок до создания проекта, если вы не хотите создавать папки, входящие в неудобных местах. Таким образом, структура папок проекта, как это OK:

correct project folder structure

Но один, как это не так:

bad project folder sructure

Если бы это было уже очевидно для вас, отлично. Я уже давно возился с этим.

Большое спасибо тем, кто ответил, и всем, кто нашел время, чтобы прочитать вопрос. Что помогло найти, что это было предложение от @AlexanderVX, что его настройка была такой же, как у меня, но его работала. Единственный бит моей настройки, который он не мог видеть на скриншотах, был началом пути построения. Так вот в чем дело.