7 c++ warnings gdb breakpoints
我的程序是用-g标志编译的.我有以下问题:
1)我在头文件中的函数中设置了断点.
断点有效.现在,当我升级两级时,它应该带我到一个C文件(Sizer.C:505).它确实如此,但我收到了很多警告:
warning: (Internal error: pc 0xff6323 in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0xff6324 in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0xff6323 in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0xff6323 in read in psymtab, but not in symtab.)
#2 0x0000000000ff6324 in SizePacketImpl<ZValue>::begin_x (this=warning: (Internal error: pc 0xff6323 in read in psymtab, but not in symtab.)
0x4888a88, bi=warning: (Internal error: pc 0xff6323 in read in psymtab, but not in symtab.)
0x56e6968) at Sizer.C:505
505 ASSERTo(...some parameters ....);
warning: (Internal error: pc 0xff6323 in read in psymtab, but not in symtab.)
Run Code Online (Sandbox Code Playgroud)
2)如果我现在(当程序处于中断状态时进行两级升级)尝试直接在Sizer.C中设置断点
(gdb) break Sizer.C:504
warning: (Internal error: pc 0xff6323 in read in psymtab, but not in symtab.)
Breakpoint 3 at 0xff1bc7: file Sizer.C, line 504.
warning: (Internal error: pc 0xff6323 in read in psymtab, but not in symtab.)
Run Code Online (Sandbox Code Playgroud)
该程序根本不会停在断点处.
3)为了完整起见:如果我在程序运行之前在Sizer.C中设置了断点,我没有收到警告,但程序仍然没有中断.
我想在Sizer.C中设置断点.如何调试和修复此问题?
这似乎是 gdb 中的一个错误。检查此页面:http://sourceware.org/ml/gdb-patches/2003-01/msg00074.html了解更多详细信息。您使用的 gdb 版本是什么?尝试升级到最新版本并重试。升级应该可以解决你的问题。
[更新]
我还找到了这个链接:http://sourceware.org/ml/gdb/2006-06/msg00123.html
这里提到了一个解决方法。尝试按上述方式注释代码。
if (low == 0 && (bfd_get_file_flags (obfd) & HAS_RELOC) == 0) > return 0;
Run Code Online (Sandbox Code Playgroud)