我在makefile文件中写了-g,比如这样 g++ -g -o ftpgetfiles ftpgetfiles.cpp,但还是有no debugging symbols found报错信息
时间: 2024-02-12 20:09:33 浏览: 154
如果在 makefile 文件中加了 -g 参数,但是在使用 gdb 调试时仍然出现 "no debugging symbols found" 的错误,可能有以下几个原因:
1. 程序没有被编译成可调试的可执行文件。在 Makefile 文件中加入 -g 参数只是告诉编译器生成可调试的可执行文件,但是如果编译的过程中出现错误,可能会导致生成的可执行文件没有调试信息。可以尝试重新编译程序,或者检查编译过程中是否有错误。
2. 可能是 gdb 没有正确加载调试信息。在使用 gdb 调试时,需要使用文件名加载可执行文件,例如:
```
gdb ftpgetfiles
```
如果使用了绝对路径或相对路径,例如:
```
gdb /home/user/ftpgetfiles
```
这会导致 gdb 无法正确加载调试信息。可以尝试使用文件名进行调试。
3. 可能是 Makefile 文件中有其他参数覆盖了 -g 参数。在 Makefile 文件中,如果有其他参数覆盖了 -g 参数,例如使用了 -O 参数进行优化,可能会导致生成的可执行文件没有调试信息。可以检查 Makefile 文件中是否有其他参数覆盖了 -g 参数。
如果以上方法都无法解决问题,可以尝试使用 objdump 命令查看可执行文件是否包含调试信息,例如:
```
objdump -g ftpgetfiles
```
如果输出为空,说明可执行文件确实没有调试信息。如果输出包含调试信息,可能是 gdb 加载调试信息时出现了问题,可以尝试重新安装 gdb 或者使用其他调试工具进行调试。
阅读全文