2011-01-05 12 views
7

私のプログラムは-gフラグでコンパイルされています。私は以下の問題を抱えています:gdb:内部エラー設定ブレークポイント

1)ヘッダファイルにある関数にブレークポイントを設定しました。

ブレークポイントが機能します。さて、私は2つ上のレベルに行くと、それは私をCファイル(Sizer.C:505)に連れて行くことになっています。私は今は、(プログラムがブレーク状態にあるときに、2つのレベルアップを行く後)直接

Sizer.Cにブレークポイントを設定しよう 場合)

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:それはありませんが、私は警告の負荷を取得します

(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にブレークポイントを設定したいと思います。この問題をデバッグして修正するにはどうすればよいですか?

答えて

3

これは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; 
+0

私は6.3.0を使用しています。申し訳ありませんが、あなたの回避策を理解できませんでした。どこに置くべきですか? –

+0

私は更新部分がこの特定の場合には関係しないと思います。 gdbを手動でコンパイルすることに関連しています。それを無視してください。 –

+0

7.1にアップグレードすると問題が解決しました。ありがとう:) –

関連する問題