Найдите путь к исходному коду для исполняемого файла, который в настоящее время отлаживается в GDB - PullRequest
18 голосов
/ 15 декабря 2009

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

Исходный код отсутствует в CWD.

Как узнать, откуда GDB берет код?

Ответы [ 5 ]

25 голосов
/ 15 декабря 2009

Вы можете использовать команду GDB:

info source

Пример вывода:

Current source file is a.c
Compilation directory is /home/user/test
Located in /home/user/test/a.c
Contains 17 lines.
Source language is c.
Compiled with DWARF 2 debugging format.
Includes preprocessor macro info.
5 голосов
/ 15 декабря 2009

Эта информация хранится в двоичном формате DWARF2 . Итак, для просмотра информации DWARF2 вы можете использовать утилиту dwarfdump. Необходимая информация хранится в поле DW_AT_comp_dir.

5 голосов
/ 15 декабря 2009

использование

(gdb) show directories

, если вы не знаете, где эти каталоги установлены, проверьте в .gdbinit , если есть такие выражения, как

directory /path/to/source

см. Также эту другую ТА тему о gdb

2 голосов
/ 15 декабря 2009

Двоичный файл, вероятно, скомпилирован с "-g" - т.е. отладка.

1 голос
/ 15 декабря 2009

Используйте команду gdb "show directoryies", чтобы увидеть исходный путь поиска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...