Страницы

Поиск по вопросам

суббота, 6 июля 2019 г.

Code::Blocks - GDB не видит точек останова в проекте CMake

Продолжая знакомиться с Code::Blocks наткнулся на непонятное поведение. Если проект создан с помощью CMake - GDB не видит точек останова в проекте, так же не работает выполнить до текущей позиции.. Выполняет весь код, без остановов.

чего пишет на это GDB:
Starting debugger: C:\MSVS\CodeBlocks\MinGW\bin\gdb32.exe -nx -fullname -quiet -args C:/__BuildSorce/T-CMAKE/t1/winext/codeblock/TestWchar2ext.exe done Setting breakpoints Debugger name and version: GNU gdb (GDB) 7.9.1 No source file named C:/__BuildSorce/T-CMAKE/t1/test/check_wchar2_MSVC.c. Temporary breakpoint 3 ("C:/__BuildSorce/T-CMAKE/t1/test/check_wchar2_MSVC.c:150") pending. Child process PID: 3408 [Inferior 1 (process 3408) exited normally] Debugger finished with status 0
На всякий случай добавил путь к исходнику исполняемого файла, он собственно один, не помогло..

Судя по всему он не может таки найти исходник check_wchar2_MSVC.c, как ему еще указать где искать?


Ответ

Если отладчик не видит точек останова, значит, информация о них не попала в скомпилированный исполняемый файл.
Для того, чтобы программу можно было отлаживать (а это не только точки останова, но и пошаговая трассировка и просмотр значений переменных), надо передать компилятору следующие параметры командной строки:
-g — снабдить исполняемый файл отладочной информацией, с помощью которой отладчик сможет сопоставить машинные инструкции строкам исходного кода. -Og — отменить все ранее объявленные -O-параметры и включить минимальный набор оптимизаций, не мешающих отладке. Так как Code::Blocks добавляет пользовательские параметры в конец командной строки компилятора, после своих, этот флаг позволяет временно переопределить настройки проекта на время отладки.

Комментариев нет:

Отправить комментарий