2010-06-08 5 views
19

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

EDIT: SDK построен в режиме отладки, а конфигурация сборки проекта настроена на отладку.

+1

Посмотрите на окно консоли gdb, возможно, gdb жалуется на что-то при загрузке вашего приложения. – Eugene

+0

У меня нет неожиданных сообщений при создании из командной строки. – CoutPotato

+0

Нет, когда в создателе, когда вы запускаете приложение под отладчиком, оно должно переключиться на панель отладки. Там вы можете показать консоль gdb (она скрыта по умолчанию, я думаю, проверьте меню). gdb печатает много вещей (загруженные DLL и т. д.) – Eugene

ответ

7

Qt Creator имеет два режима работы вашего приложения: «запустить» и «отладить». Я думаю, вы можете быть в замешательстве относительно того, что они означают:

  • Запустить: запустить программу, точно так же, как дважды щелкнуть по исполняемому файлу.
  • Отладка: запустите отладчик, присоедините его к исполняемому файлу и запустите исполняемый файл через отладчик. Это записывает все этапы (вызовы функций и т. Д.) Вашей программы, включая точки останова.

Вкратце: когда вам нужно выяснить внутреннее значение во время выполнения программы и/или установить контрольные точки, используйте Debug. Для чего-нибудь еще, просто запустите его, что намного быстрее.

+2

В QtCreator 2.3.0, чтобы переключиться с «release» (не останавливает отладчик в точках останова), чтобы «отлаживать», вам нужно щелкнуть по значку проекта ->, затем щелкнуть по выходу сборки -> тогда вы должны увидеть «выпуск» и «выпуск», debug "-> нажмите" debug ". Значок проекта расположен в левом нижнем углу над большим прогоном, отлаживает, создает иконки графического интерфейса проекта. –

+1

Если вы не переключите проект на «debug», отладчик всегда будет пропускать ваши контрольные точки. Также обязательно очистите после перехода на «debug». –

+2

В то время как вышесказанное очень верно, оно не отвечает на ближайший вопрос - если предположить, что запуск был выполнен правильно в режиме отладки и с отладочным сеансом, все еще есть случаи, когда GDB (но чаще CDB) не останавливается на точках прерывания. обычно это происходит после попытки сгладить отладчик к процессу без успеха. К сожалению, я до сих пор не могу понять, почему это происходит и только в некоторых случаях. – Adi

3

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

CONFIG += qt warn_on release rtti exceptions 

Тогда я удалить «освобождение», то это сработало. Надеюсь, это поможет.

4

Вам нужно добавить в .pro файл следующую строку:

CONFIG  += debug 

И может быть, вы должны удалить это:

CONFIG  += release 
19

Если это CMake сборки, необходимо установить построить тип до того настройки проекта, так, например, в вашей верхней CMakeList.txt:

SET(CMAKE_BUILD_TYPE Debug) 
project(mybuildtype) 

Официально вы можете передать это также в cmake в разделе «Проекты» при запуске cmake: http://qt-project.org/forums/viewthread/12694, поэтому с -DCMAKE_BUILD_TYPE = флаг отладки, но это больше не работает ... Если вы хотите, чтобы флаг работал, вам нужно прежде чем устанавливать проект, см. http://www.cmake.org/pipermail/cmake/2008-September/023808.html

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