11

我有一个名为 test.txt 的文件。即使用-g编译它,当我在gdb中运行它时,它也说没有找到调试符号。我也尝试过使用 -ggdb 但它也没有用。请帮忙。

Output for : gdb test

This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/test...(no debugging symbols found)...done.
4

3 回答 3

8

问题是您正在尝试调试错误的程序。

您的程序被调用test,但您正在调试/usr/bin/test(一个系统程序几乎肯定会在没有符号的情况下发布;即使它确实包含符号,它们也不会与您的源代码相关)。

gdb将搜索$PATH以找到可执行文件。从这里

exec-file [ 文件名 ] 指定要运行的程序(但不是符号表)在文件名中找到。如果需要,gdb 会搜索环境变量 PATH 来定位您的程序。省略文件名意味着丢弃有关可执行文件的信息。

尝试使用命令:

$ gdb ./test
于 2013-08-12T15:36:05.003 回答
1

删除a.out然后重试。它对我有用,因为我也遇到了同样的错误。

rm a.out
gcc -g your_code.c
于 2013-12-19T12:42:32.570 回答
0

检查可执行文件没有被剥离,你可以看到file /usr/bin/test

于 2013-08-12T15:22:13.537 回答