如何让GDB在调试时显示源代码?

How to get GDB to show the source code while debugging?

要使 gdb 使用单个源文件,您可以将其存储在 gdb 所在的同一目录中 运行。一个完整的文件夹怎么样?

例如我有一个名为“bootup”的文件夹,其中包含多个子文件夹和文件。它生成一个名为“bootup”的二进制文件,我需要调试它以防止崩溃并理解代码流。

如果我在路径中只有启动文件夹(包含源代码)似乎还不够。当我设置断点并调试时,它仍然只显示如下文件而不是源代码。

(gdb)directory /root/bootup
Source directories searched: /root/bootup:/root:$cdir:$cwd
(gdb) n
141     in RecFns.cpp
(gdb)
142     in RecFns.cpp

RecFns.cpp 在 /root/bootup/dir1/dir2/dir3/RecFns.cpp

我应该怎么做才能在调试时让 gdb 打印源文件内容。 根据 http://sourceware.org/gdb/onlinedocs/gdb/Source-Path.html,目录 xyz 应该能够在指定的目录中进行 gdb 搜索。但这对我不起作用。

gdb find . -type d | xargs printf " -d %s" 编 最终为我工作。这将目录递归地提供给 gdb。 在这里找到 - https://titanwolf.org/Network/Articles/Article?AID=e61837e2-2ccc-4cce-80c8-3c8555aeacbd#gsc.tab=0

现在我可以像我想要的那样查看源代码:-)