我使用多个C ++文件处理程序。我已经通过gdb运行可执行文件来调试分段错误。之后,gdb backtrace
在分段错误之前提供了功能列表。后来,我尝试在特定行号的文件中设置断点。 (指定的路径是绝对路径)
(gdb) break /aia/r015/home/sathish/zfs_amr/src/zfslbminterfaced2q9.cpp:100
但是,gdb提供以下消息:
No source file named /aia/r015/home/sathish/zfs_amr/src/zfslbminterfaced2q9.cpp.
但是,这个位置确实存在。这个消息到底意味着什么?
答案 0 :(得分:1)
这个消息到底意味着什么?
该消息表示GDB不知道任何名为/aia/r015/home/sathish/zfs_amr/src/zfslbminterfaced2q9.cpp
的源文件。
情况可能有多种原因:
-g
的情况下编译的,或者是因为调试信息(可能无意中)在以后被剥离了,正如Pat建议的那样,在zfslbminterfaced2q9.cpp:100
上设置断点更有可能奏效。
如果这不起作用,info sources
将告诉您GDB 知道哪些文件。
更新
info sources给出空白
这意味着应用程序根本没有任何调试信息。
通常这种情况有两个原因:
-g
(某些平台在编译和链接时都需要-g
),-s
(剥离了最终的可执行文件)。