У меня проблемы с отладкой программы на 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? Возможно, при запуске из Eclipse GDB собирает другие файлы конфигурации или что-то еще, чем когда он запускается из оболочки? (Кто-нибудь знает?)
Я бы очень признателен за любую помощь с этим, потому что это медленно сводит меня с ума!
Пожалуйста, дайте мне знать, если были бы полезны какие-либо другие детали - точные номера версий Eclipse / cdt / gdb, точные командные строки компоновщика / компилятора и т. Д. - и я с радостью обновлю этот пост вместе с ними.
Заранее большое спасибо,
thoughton.
--- отредактировано @ "14 часов назад" ---
Я попробовал опцию «добавить путь к файловой системе» (с «поиском в подпапках»), но это не сработало. Я также пытался создать новый совершенно плоский проект, но это тоже не сработало.
Я даже пытался получить релиз Galileo (eclipse-SDK-3.5.2RC4 с обновлением CDT), но это не имело никакого значения (кроме того, что gdb медленнее запускался).
И вот еще кое-что странное, что я заметил: как только я получаю сообщение «Источник недоступен», если я затем переключаю консоль Eclipse для отображения консоли «gdb», а также включаю «Режим подробной консоли», чтобы я мог сообщить об этом Затем я могу выполнить команды «l» и «bt» и заставить их работать успешно, показывая правильный источник и стек, где была достигнута моя точка останова. Что, поправьте меня, если я ошибаюсь, должно означать, что информация есть и GDB вызывается правильно - так почему Eclipse не увидит эту информацию?
Я близок к тому, чтобы отказаться от «Затмения», если честно ... Я тоже пришел к нему с такими большими надеждами.
Буду очень признателен за любую дополнительную помощь или мысли.
т.