Подтвердить что ты не робот

Почему мои контрольные точки не работают в Qt Creator

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

Если это сборка 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

Ответ 3

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

CONFIG     += debug

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

CONFIG     += release

Ответ 4

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

CONFIG += qt warn_on release rtti exceptions

Затем я удаляю "release", затем он работает. Надеюсь, это поможет.