gdb:内部错误设置断点

我的程序是用-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.)

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.)

程序不会停在断点处。

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; 
链接地址: http://www.djcxy.com/p/4151.html

上一篇: gdb: internal error setting breakpoints

下一篇: How do I open the GWT samples in eclipse Helios and GWT 2.1.1?