使用 list 命令时 GDB 不显示源代码

GDB doesn't show source code when using list command

我正在尝试调试段错误,但似乎一些常见的 gdb 命令没有按预期工作。如果我执行以下操作:

gdb ./executable_name
break main
run
list

我收到以下错误:

(gdb) list
1   <built-in>: No such file or directory.

类似地,如果我让程序 运行 直到出现段错误,然后尝试使用

检查堆栈中的特定帧
bt
up
list

我得到一个类似但较短的错误:

(gdb) list
1   in <built-in>

我之前在其他基于 Ubuntu 的系统上使用过 GDB 并且没有遇到过这样的问题,所以我假设我仍然需要在我的系统上正确设置 GDB 以便它知道在哪里寻找可执行文件的相应源代码。谁知道在调试时如何使用 list 命令让 GDB 显示源代码?

在问上述问题之前,我应该多看看。上面的可执行文件不是在调试模式下构建的。我正在使用 ROScatkin,所以在包目录中使用 catkin build -DCMAKE_BUILD_TYPE=Debug 解决了问题。