Подтвердить что ты не робот

Отладка с помощью Eclipse CDT и GDB

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

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

Спасибо за вашу помощь.

4b9b3361

Ответ 1

Я нашел одну тему, которая может ответить на этот вопрос: Почему Eclipse CDT игнорирует точки останова?

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

coud это ответ? Я использую CDT v6.0.0.200906161748 и GDB v6.8

Ответ 2

У меня была эта же проблема, пытаясь установить точки останова в плагинах 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 Build id: 20100617-1415

CDT и GDB версии 7.0.0.

Удачи!