В Eclipse нет доступных источников

Я использую GDB 7.3 в Eclipse. Он подключается к GDBServer. Когда я запускаю отладчик в Eclipse, я получаю:

Нет источника для main() по адресу 0x101250

Я компилирую с отключенным оптимизатором и флагом отладки, установленным на максимум:

-O0 -g3

Я вижу символы отладки при запуске:

./powerpc-unknown-eabi-objdump.exe -g | отладка grep

GDB 8.1 умеет находить исходники. Однако я не могу использовать его из-за несовместимости с GDBServer, к которому я подключаюсь :(

Изменить: я добавил источник на вкладке «Источник» в конфигурации отладки. Я даже добавил источник вручную в терминал GDB, также известный как консоль отладчика, используя следующее:

каталог /путь/к/src/

Поиск исходных каталогов: /path/to/src/:$cdir:$cwd


person zsnafu    schedule 27.11.2018    source источник
comment
Я предполагаю, что вы используете eclipse для создания своей программы, верно? Возможно, вам нужно добавить исходное местоположение на вкладке «Источник» в вашей конфигурации отладки.   -  person Thomas Schmid    schedule 29.11.2018
comment
Спасибо за ответ. Я добавил источник на вкладке «Источник» в конфигурации отладки. Я даже добавил команду в терминал GDB, также известную как консоль отладчика, используя следующее: каталог /path/to/src/ Я обновил свой вопрос, чтобы проиллюстрировать это.   -  person zsnafu    schedule 29.11.2018


Ответы (1)


Для тех, у кого есть эта проблема в будущем.

Проблема возникает из-за использования новой версии GCC (GCC 8.1) и более старой версии GDB (GDB 7.3).

GCC выпускает новую версию символов отладки, с которой старая версия GDB не знает, как работать. Я добавил флаги в GCC для создания старых символов карлика:

-ggdb -gdwarf-3

Вот документация по этим флагам

person zsnafu    schedule 29.11.2018
comment
Я думаю, вам нужно только -gdwarf3. Справка для -ggdb гласит: Производить отладочную информацию для использования GDB. Это означает использование наиболее выразительного доступного формата (DWARF, stabs или собственный формат, если ни один из них не поддерживается), включая расширения GDB, если это вообще возможно. - person Thomas Schmid; 30.11.2018
comment
Интересный факт, моим встроенным инструктором был парень по имени Томас Шмид. Это тот класс, из-за которого я захотел стать инженером встраиваемых систем. - person zsnafu; 16.05.2021
comment
Красиво, но извините, это был не я. - person Thomas Schmid; 17.05.2021