簡體   English   中英

gdb:內部錯誤設置斷點

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM