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

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

РЕДАКТИРОВАТЬ: SDK построен в режиме отладки, а конфигурация сборки проекта настроена на отладку.


person CoutPotato    schedule 08.06.2010    source источник
comment
Посмотрите на окно консоли gdb, возможно, gdb на что-то жалуется при загрузке вашего приложения.   -  person Eugene    schedule 08.06.2010
comment
Я не получил неожиданных сообщений при сборке из командной строки.   -  person CoutPotato    schedule 09.06.2010
comment
Нет, в креаторе при запуске приложения под отладчиком оно должно переключаться в панель отладки. Там вы можете показать консоль gdb (я думаю, по умолчанию она скрыта, проверьте меню). gdb там много чего печатает (загруженные dll и тд)   -  person Eugene    schedule 09.06.2010
comment
Вы говорите о выводе компиляции? Он не показывает никаких проблем, кроме некоторых неиспользуемых переменных.   -  person CoutPotato    schedule 09.06.2010
comment
Я заставил его останавливаться в точках останова, если я сначала отлаживаю проект, а затем запускаю его. Я не уверен, что это значит, но пока меня устраивает это решение...   -  person CoutPotato    schedule 09.06.2010
comment
лол, я думаю, что проект отладки - это то, что вы должны делать. Есть запуск с отладкой и запуск без отладки.   -  person Eugene    schedule 14.06.2010
comment
У меня была эта проблема в Qt Creator в Windows. Я использовал gdb.exe от Cygwin, поэтому я переключился на cdb.exe от Microsoft, и это решило проблему для меня.   -  person OLL    schedule 28.04.2017


Ответы (4)


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

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

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

person rubenvb    schedule 11.06.2010
comment
В QtCreator 2.3.0, чтобы переключиться с выпуска (не останавливает отладчик в точках останова) на отладку, вам нужно щелкнуть значок проекта --> затем щелкните раскрывающийся список сборки --> затем вы должны увидеть выпуск и отладку -- › нажмите отладить. Значок проекта расположен в левом нижнем углу над значками большого запуска, отладки, сборки графического интерфейса проекта. - person Trevor Boyd Smith; 19.09.2011
comment
Если вы не переключите свой проект на отладку, отладчик всегда будет пропускать ваши точки останова. Также не забудьте очистить после перехода на отладку. - person Trevor Boyd Smith; 19.09.2011
comment
Хотя вышеизложенное очень верно, оно не дает ответа на неотложный вопрос - если предположить, что запуск был выполнен правильно в режиме отладки и с сеансом отладки, все еще бывают случаи, когда GDB (но чаще CDB) не останавливается в точках останова. обычно это происходит после безуспешной попытки синхронизировать отладчик с процессом. К сожалению, я до сих пор не могу понять, почему это происходит, и только в некоторых случаях. - person Adi; 18.04.2012
comment
Я не вижу выпадающего меню "Сборка" в настройках сборки. Я в Creator 2.5.2. Есть ли новый способ переключения между сборкой в ​​режиме выпуска и в режиме отладки? - person David Doria; 17.08.2012

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

SET(CMAKE_BUILD_TYPE Debug)
project(mybuildtype)

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

person Benn Malengier    schedule 18.02.2014

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

CONFIG     += debug

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

CONFIG     += release
person Viron524    schedule 14.08.2013

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

CONFIG += qt warn_on release rtti exceptions

Потом убираю "релиз", тогда заработало. Надеюсь, это поможет.

person Tuan Nguyen    schedule 19.05.2013
comment
Я поместил эти строки в файл проекта (myproject.pro): CONFIG (отладка, отладка | выпуск) { CONFIG += qt warn_on rtti исключения }, после этого я запустил отладку, и она работает очень хорошо. - person kato2; 23.06.2018