Найдите путь к исходному коду исполняемого файла, который в настоящее время отлаживается в gdb
Я могу установить точку останова в главном и отлаживать код с правильным исходным кодом, но я не знаю, откуда gdb берет исходный код.
Исходный код отсутствует в CWD.
Как найти, из какого места gdb берет код?
Ответы
Ответ 1
Вы можете использовать команду 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.
Ответ 2
Эта информация хранится в двоичном формате в формате DWARF2. Итак, чтобы увидеть информацию DWARF2, вы можете использовать утилиту dwarfdump. Необходимая информация хранится в поле DW_AT_comp_dir.
Ответ 3
использовать
(gdb) show directories
если вы не знаете, где эти каталоги будут установлены в ваш .gdbinit, если есть такие выражения, как
directory /path/to/source
см. также этот другой SO-поток о gdb
Ответ 4
Бинарный файл, вероятно, скомпилирован с помощью "-g" - то есть отладки.
Ответ 5
Используйте команду "показать каталоги" gdb, чтобы увидеть исходный путь поиска.