Ошибка «Источник недоступен для main ()» при отладке простого C ++ в Eclipse с помощью gdb

У меня проблемы с отладкой программы на C ++ в Eclipse (последняя версия RC Helios, обновленная с помощью самой последней версии CDT изнутри себя) в OSX.

Программа очень проста (по существу, урок 2 из учебных пособий NeHe по OpenGL), состоит из одного файла cpp и, используя каркасы OpenGL и Cocoa, и связана с libSDL.a и libSDLmain.a.

Структура проекта очень проста: исходные файлы находятся в подкаталоге проекта с именем src /, а исполняемый файл встроен в корневой каталог проекта.

Проблема в том, что всякий раз, когда я пытаюсь добавить точки останова и отладить их, точки останова, кажется, попадают идеально, но источник не отображается - вместо этого я просто получаю сообщение об ошибке «Источник недоступен для main ()» в окне кода.

Для флагов компилятора оптимизация не установлена, а для компилятора и компоновщика установлен флаг отладочных символов (-g).

Параметр отладки в Eclipse установлен на «Стандартные процессы порождения», а отладчик - на «gdb».

Теперь самое странное, что если я попытаюсь отладить точно такой же исполняемый файл - т.е. точно такой же, который был построен Eclipse - используя gdb из терминала (оболочки), тогда все работает нормально. Точки останова сбиты, исходный код отображается, проблем нет вообще.

Я убедился, что и Eclipse, и оболочка используют один и тот же исполняемый файл gdb, и это так (это / usr / bin / gdb).

Теперь я могу ошибаться, но все это говорит мне о том, что не может быть проблемы с флагами компилятора и компоновщика (потому что один и тот же исполняемый файл отлаживается из оболочки), поэтому, вероятно, проблема должна быть в том, как вызывается gdb из затмения? Возможно, при запуске из Eclipse GDB собирает другие файлы конфигурации или что-то еще, чем когда он запускается из оболочки? (Кто-нибудь знает?)

Я бы очень признателен за любую помощь с этим, потому что это медленно сводит меня с ума!

Пожалуйста, дайте мне знать, если есть какие-либо другие подробности, которые были бы полезны - точные номера версий Eclipse / cdt / gdb, точные командные строки компоновщика / компилятора и т. Д. - и я с радостью обновлю этот пост вместе с ними.

Спасибо заранее,

thoughton.

---Отредактировано @ "14 часов назад" ---

Я попробовал опцию «добавить путь к файловой системе» (с «поиском в подпапках»), но это не сработало. Я также пытался создать новый совершенно плоский проект, но это тоже не сработало. Я даже пытался получить релиз Galileo (eclipse-SDK-3.5.2RC4 с обновлением CDT), но это не имело никакого значения (кроме того, что GDB медленнее запускался).

И вот еще кое-что странное, что я заметил: как только я получаю сообщение «Нет доступного источника», если я затем переключаю Консоль Eclipse для отображения консоли «gdb», а также включаю «Режим многословной консоли», чтобы я мог сообщить об этом, я могу затем выполните команды «l» и «bt», чтобы они работали успешно, показывая правильный источник и стек, где была достигнута моя точка останова. Что, поправьте меня, если я ошибаюсь, должно означать, что информация есть и GDB вызывается правильно - так почему же Eclipse не увидит эту информацию?

Я близок к тому, чтобы отказаться от «Затмения», если честно ... Я тоже пришел к нему с такими большими надеждами.

Любая дополнительная помощь или мысли будут очень благодарны.

т.

Ответы на вопрос(12)

Ваш ответ на вопрос