как я упоминаю gdb в unix для поиска исходных файлов внутри одного каталога рекурсивно например если в одном модуле есть несколько разных блоков. a является родительским каталогом для b, c, d, где b, c, d являются дочерними каталогами. и исходные файлы распределяются в b, c, b. я просто должен упомянуть gdb, что все исходные файлы находятся в (родительском каталоге). который gdb будет использовать в качестве ссылки и искать исходные файлы рекурсивно при отладке программы.
Gdb поиск исходных каталогов
Ответ 1
Или вы можете сделать что-то вроде этого, для отладки программы prog
с исходным кодом в каталоге srcdir
:
gdb `find srcdir -type d -printf '-d %p '` prog
Я думаю, что это более прямой ответ на ваш вопрос. Также полезно, если ваш исполняемый файл не содержит каталоги компиляции и/или у вас нет версии 6.6+ из gdb.
Ответ 2
Для этого вам понадобится команда установить альтернативный путь.
(gdb) set substitute-path /usr/src/include /mnt/include
Доступно только в последних версиях (6.6+) gdb.
Ответ 3
(gdb) help files
Specifying and examining files.
List of commands:
add-shared-symbol-files -- Load the symbols from shared objects in the dynamic linkers link map
add-symbol-file -- Load symbols from FILE
add-symbol-file-from-memory -- Load the symbols out of memory from a dynamically loaded object file
cd -- Set working directory to DIR for debugger and program being debugged
core-file -- Use FILE as core dump for examining memory and registers
directory -- Add directory DIR to beginning of search path for source files
edit -- Edit specified file or function
exec-file -- Use FILE as program for getting contents of pure memory
file -- Use FILE as program to be debugged
forward-search -- Search for regular expression (see regex(3)) from last line listed
generate-core-file -- Save a core file with the current state of the debugged process
(gdb) help directory
Add directory DIR to beginning of search path for source files.
Forget cached info on source file locations and line positions.
DIR can also be $cwd for the current working directory, or $cdir for the
directory in which the source file was compiled into object code.
With no argument, reset the search path to $cdir:$cwd, the default.