2011-12-07 6 views
1

私はこの質問に対する明確な答えを見つけるためにグーグルではできませんでした。GDBでデバッグ中に標準ライブラリとブーストライブラリを無視する

GDBを使用してコードを実行中にライブラリを無視することはできますか?私は単純なプログラムをデバッグしようとしていましたが、そうしている間に周辺機能や興味深いコードは表示されませんでした.-私はarchlinuxの標準ライブラリやブーストライブラリのデバッグには興味がありません。

ステッピングするとき、私はGDBを自分のコードに当たるまで実行してください。そういうフィルタは可能ですか?私はemacsを使用しています。

答えて

2

stepコマンドを発行する直前に、外部ライブラリ機能に踏み込んでいることに気付くでしょう。最も簡単な解決策は、stepの代わりにnextコマンドを発行することです。これは、マーカーが外部ライブラリの関数呼び出しにあるときです。

+0

これはテストしていませんが、vector.push_back(get_element(...));などの複合文を記述するときに問題が発生しません。 – Max

+0

初めて 'get_element'に入るために' step'する必要があるときは、2回目に 'next'を発行してください。 – loudandclear

0

stripデバッグする予定のないライブラリのデバッグシンボルを使用できます。

strip --strip-debug <lib_file.a> 

アプリを再ビルドすると、ライブラリファイルがデバッガに表示されません。 libコールの "step"はGDBの "next"と同じになります。

OR

また、代わりのlibファイルをコンパイルするときに-gオプションを持ってしないように選択することができます。

+0

ディストリビューションに含まれている標準ライブラリからデバッグシンボルを削除すべきですか?何か理由がありますか? – Max

関連する問題