Продолжая знакомиться с 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 добавляет пользовательские параметры в конец командной строки компилятора, после своих, этот флаг позволяет временно переопределить настройки проекта на время отладки.
Комментариев нет:
Отправить комментарий