C++ gdb:(未找到调试符号)

C++ gdb:(未找到调试符号),c++,ubuntu,gdb,g++,C++,Ubuntu,Gdb,G++,我有一个名为test的文件。即使在用-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 symbol

我有一个名为test的文件。即使在用-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.
输出:gdb测试
此GDB配置为“x86_64-linux-gnu”。
有关错误报告说明,请参阅:
...
正在从/usr/bin/test…读取符号(未找到调试符号)…已完成。

检查可执行文件是否被剥离,您可以看到使用
文件/usr/bin/test
问题在于您试图调试错误的程序

您的程序名为
test
,但您正在调试
/usr/bin/test
(一个几乎肯定不会附带符号的系统程序;即使它确实包含符号,它们也不会与您的源代码相关)

gdb
将搜索
$PATH
以查找可执行文件。发件人:

exec file[文件名]指定要运行的程序(但不是 符号表)在文件名中找到。gdb搜索环境 变量路径(如果需要)来定位程序。省略文件名 表示放弃可执行文件上的信息

尝试使用以下命令:

$ gdb ./test

请删除a.out,然后重试。这对我来说很有效,因为我也犯了同样的错误

rm a.out
gcc -g your_code.c

在gdb中执行file/usr/bin/test会得到相同的输出。从/usr/bin/test读取符号…(未找到调试符号)…完成。您可以发布
文件/usr/bin/test
的结果吗?
从/usr/bin/test读取符号…(未找到调试符号)…完成。
它只是说未找到此类文件或目录。我在网上学习了一个关于gdb的教程,在那里,如果程序名是test.cpp,他们会要求使用gdb test,文件
/test
是否存在?我相信。/test是执行test.out的一种方法。我已经用test中的输出编译了test.cpp。out@p_c不管可执行文件是什么,都是需要调试的文件。如果输出为
cats
,那将是
gdbcats
。哦,谢谢。!我丢失了我们为输出文件设置的.out扩展名:)