2011-04-05 14 views
1

これは正常ですか?私は最近まで1つのブレークポイントしか設定していないと誓っています。実行ファイルにソースファイルではなくブレークポイントを設定するにはどうすればよいですか?gdbデバッガが2つのブレークポイントを設定するのはなぜですか?

(gdb) break main 
Breakpoint 1 at 0x1dbf 
Breakpoint 2 at 0x1ed8: file arrays.c, line 17. 
warning: Multiple breakpoints were set. 
Use the "delete" command to delete unwanted breakpoints. 
(gdb) 
+0

可能重複[GDB:警告:複数のブレークポイントを設定した(前処理されたソースを介してmain識別子の強引検索しますhttp://stackoverflow.com/questions/7330364/gdb-warning-multiple-breakpoints-were-set) – osgx

答えて

2

複数のメインシンボルがあります:)おそらく理由/場所を確認するために、GDBの '情報のブレークポイント' を見たり

objdump -C -t myprog 

宣言を対話的に検索するには、cscopeを使用します。他のすべてが失敗した場合

ctags -R . && grep -w main tags 
[ -x /usr/bin/vim ] && vim +'tj main' 

あなたはctagsの(および必要に応じて、Vimを)持っている場合にも助けになるはずですが、ブルートフォースgrep -RIw main .が動作するはずです、

をインストールしました。たとえそれが失敗したとしても、非常に奇妙な外部ヘッダー#define、または余分なメインシンボルを持つ(静的な)ライブラリでさえ自分自身を見つけるはずです。

(関連プリプロセッサはを定義して-I/usr/include/... -DDEBUGを置き換える)の

関連する問題