Я сделал следующее:
- импортировал проект Makefile в Eclipse CDT.
- скомпилировал программу из командной строки, используя параметр -ggdb команды g ++.
- запустить программу из командной строки
- установить несколько точек останова в Eclipse CDT
- подключил отладчик Eclipse CDT (gdb) к дочернему процессу, который порождает моя программа (дочерний процесс запускает программу из того же проекта).
На этом этапе я получаю сообщение об ошибке в консоли
Нет исходного файла с именем /home/oswald/Eclipse/CDT/Workspace/Project/path/to/header.h.
Когда я возобновляю программу, все мои точки останова пропускаются. Как мне заставить работать точки останова?
Некоторые дополнительные примечания:
- Нет задействованных разделяемых библиотек.
- Eclipse Indigo, gdb 7.4, Ubuntu 12.04
- Используя командную строку для присоединения gdb к процессу, я могу установить точку останова на
header.h:257
(header.h
находится в папке/home/oswald/Eclipse/CDT/Workspace/Project/path/to/
). Затем gdb соблюдает эту точку останова. - Используя командную строку для присоединения gdb к процессу, я не могу установить точку останова на
/home/oswald/Eclipse/CDT/Workspace/Project/path/to/header.h:257
, я получаю то же сообщение от gdb, что и при использовании Eclipse CDT. - Eclipse CDT использует GDB (DSF) Attach to Process Launcher. При переключении на Стандартное присоединение к средству запуска процессов появляется сообщение об ошибке, что система не может перечислить запущенные процессы.
- Путь поиска источника в конфигурации отладки установлен по умолчанию (Абсолютный путь к файлу, Реальный путь к файлу программы, Проект). Я экспериментировал с другими настройками, но ни один из них не работал.