2009-11-12 4 views
1

Я использовал код :: Блоки с MinGW в окне WinXP некоторое время. Но так как я начал использовать Boost.Build в качестве «инструмента для создания пользовательской сборки», у меня возникли проблемы с настройкой точек останова из Code :: Blocks. Когда я начала сеанса отладки кода :: Blocks пытается отправить все точки останова в GDB, но GDB не кажется, что узнает имена файлов исходных текстов:Отладка с блоками кода и пользовательский make (Boost.Build)

Debugger name and version: GNU gdb 6.6 
No source file named C:/xxx/CB-Workspace/altomo/src/main.cpp. 
Breakpoint 1 ("C:/xxx/CB-Workspace/altomo/src/main.cpp:185) pending. 

(ххх является только) языке Генеральный Общие Аббревиатура

чтобы понять, что происходит, я начал GDB вручную и попытался установить контрольную точку:

(gdb) break main.cpp:181 
Breakpoint 1 at 0x40231e: file src/main.cpp, line 181. 
(gdb) break src/main.cpp:182 
Breakpoint 2 at 0x402331: file src/main.cpp, line 182. 
(gdb) break "C:/xxx/CB-Workspace/altomo/src/main.cpp:185" 
Breakpoint 3 at 0x402513: file src/main.cpp, line 185. 

Все кажется в порядке. Я также понял, что во всех файлах * .o присутствовал полный путь.

Странно, что отладка работала до того, как я переключился на Boost.Build. Итак, я не знаю, где искать. Кто виноват? Me, Boost.Build, Code :: Blocks или GDB? Я пропустил некоторые очевидные параметры компилятора или настройки проекта CB w.r.t. поисковые пути или что-то еще?

Я бы хотел использовать Boost.Build как инструмент сборки и Code :: Blocks для редактирования и как интерфейс GDB. Любая помощь в решении этой проблемы приветствуется.

ответ

1

Я включил код :: журнал отладки блока, чтобы узнать, какие команды переданы GDB, и, похоже, проблема связана с Code :: Blocks. Он отправляет команду в GDB, которая является именем «DOS-mangled». GDB это не нравится. Итак, это похоже на ошибку в Code :: Blocks для меня.

0

Попробуйте это:

(gdb) break main.cpp:185 

Если GDB не знает main.cpp либо, то Boost.Build не строит версии отладки.
Шансы Boost.Build не использует абсолютные пути при компиляции источника.

+0

Руководство 'break main.cpp: 185' работает так же, как и' break main.cpp: 181', что я уже пробовал (см. Выше). – sellibitze