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

标签 linux ubuntu debugging gdb ubuntu-16.04

我正在尝试调试一个段错误,但似乎有些常见的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 显示源代码?调试时的命令?

最佳答案

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

关于linux - 使用 list 命令时 GDB 不显示源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60538027/

相关文章:

ios - 升级到 Safari 7.0.4 后无法在本地和远程设置 Web 检查器断点

java - 在 R (Ubuntu 16.04) 中安装 RWeka 的问题

windows - 我是否需要同时为 Windows 10 和 WSL 安装 Git?

ubuntu - Docker 不下载图像(注册表连接问题)

linux - 如果有2个矩阵a和b,a(b)在matlab中做什么?

C# 二叉搜索树 - 堆栈溢出 - 调试

java - Java 堆栈跟踪中的神秘方法

linux - 如何让读取标准输入的程序在 Linux 后台运行?

linux - 在创建管道、fifo 或套接字时创建 inode

c - 如何在 Linux 中抑制 -Werror=pointer-to-int-cast 和 -Werror=address 类型的错误