GDB 在使用列表命令时不显示源代码



我正在尝试调试segfault,但一些常见的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解决了这个问题。

最新更新