2009-10-19 1 views
17

У меня есть проект приложения Eclipse CDT C++, который использует общую библиотеку. Эта библиотека скомпилирована с информацией об отладке, и ее источник доступен по правильному пути.Отладка с Eclipse CDT и GDB

Теперь я пытаюсь отлаживать свое приложение с помощью Eclipse и GDB. Если я поставлю точки останова в исходном коде приложения, все будет в порядке. Затем я открою исходный файл включенной общей библиотеки и поставлю точку останова. При запуске сеанса отладки я предупреждаю, что «Нет исходного файла с именем xxx.cpp в загруженных символах», и выполнение не останавливается в этой точке. Если я поставил ту же точку останова в тот же файл, когда отладка сеанса уже запущена, все работает нормально. Что не так?

Благодарим за помощь.

ответ

7

Я нашел одну тему, которая может ответить на этот вопрос: Why does Eclipse CDT ignore breakpoints?

Может быть, что вы пытаетесь установить точки останова в общей библиотеке, которая не была загружена еще. Это не будет работать до загрузки библиотеки. Новые gdb позволяют установить отложенные точки останова, но это может быть (пока) при поддержке CDT. Обходной путь установить точку останова в месте, которое доступно с самого начала, которое будет достигнуто при , когда общая библиотека в уже загружена. Затем установите другую точку останова в общей библиотеке . Теперь это должно сработать. Это бит более утомительный, но обычно работает.

coud it be answear? Я использую CDT v6.0.0.200906161748 и GDB v6.8

7

У меня была эта же проблема, пытаясь установить точки останова в плагинах Qt (которые основаны на Windows DLL, s).

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

http://www.eclipse.org/forums/index.php?t=msg&goto=555294&S=2aed4155e654e34cb2e84a6fb23de9bf#msg_555294

В основном, это использовать старый протокол GDB, который поддерживает отложенные точки останова. Используя «Стандартный запуск процесса запуска» вместо «GDB (DSF) Create Process Launcher» из «Конфигурации отладки», и теперь все мои контрольные точки DLL установлены.

Версия: Helios Release Сложение ID: 20100617-1415

CDT и GDB версии 7.0.0.

Удачи вам!