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

问题描述 投票:1回答:1

我正在尝试调试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显示源代码吗?

我正在尝试调试segfault,但是似乎某些常见的gdb命令无法按预期工作。如果执行以下操作:gdb ./executable_name Break main run list我收到以下错误:(...

linux ubuntu debugging gdb ubuntu-16.04
1个回答
0
投票

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


-1
投票

默认情况下,GDB使用list命令的任何这些形式打印十个源代码行。您可以使用set listsize更改此设置:

© www.soinside.com 2019 - 2024. All rights reserved.