[英]gdb: internal error setting 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.)
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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.