特定の関数名がバックトレースに表示された場合にのみブレークするように、gdb ブレークポイントに条件を設定したいと考えています。これを行う最善の方法は何ですか?
2133 次
3 に答える
4
Python スクリプトよりも簡単な解決策は、一時的なブレークポイントを使用することです。
次のようになります。
b ParentFunction
command 1
tb FunctionImInterestedIn
c
end
に侵入するたびにParentFunction
、実際に関心のある関数に 1 回限りのブレークポイントを設定し、実行を続けます (おそらく、そのブレークポイントに到達するまで)。
で 1 回だけ中断するため、 が のコンテキストで複数回呼び出され、各呼び出しで中断したいFunctionImInterestedIn
場合、これは機能しません。FunctionImInterestedIn
ParentFunction
于 2016-05-02T13:29:38.540 に答える
3
あなたが求めていることを正確に行う方法はわかりませんが、関連する関数のソースコードにアクセスできる場合、可能な回避策はtrue
、関数の先頭にグローバルブール変数を設定し、それをに設定することです。false
関数が終了する直前。condition
次に、このブール変数が。の場合にのみ停止するように(コマンドを使用して)条件付きブレークポイントを設定できますtrue
。
于 2010-11-14T13:00:01.253 に答える