は、それが自動的に削除されます。それを一度設定し、同じ範囲に入るたびに自動的に生き続ける方法はありますか?どのようにローカルスコープの変数に対して永続および条件付きウォッチポイントを設定しますか?私は現在のスコープに変数のローカル用ウォッチポイントを設定した場合、スコープの外に行くとき
は
watch var1 if var1==0
のように、条件付きウォッチポイントを設定することがとにかくありますか?私の場合、状態は機能しません。var1 == 0
が真になるまでではなく、var1
の値が変更されると、gdbは停止します。私のgdbはGNU gdb 6.8-debianです。
答えて
私は、正確な答えは異なりますので、私たちは、使用している言語わからないんだけど、あなたは、静的なグローバル、または動的に割り当てられるようにどちらかの変数を変更(および自由ませんでした関数が返ったときは?)。このようにして、生のアドレスは変更されず、gdbはブレークポイントでそれを実行できます。代わりに、それが特定の値に等しいWHE値を見ての
。
var1
の値をチェックする行に条件付きブレークポイントを設定する必要があります。これは事実上同じ効果を有するべきである。
(gdb) break main.c:123 if (var1 == 0)
私は条件付きブレークポイントが行く方法であることに同意します。
しかし、尋ねたことをするには、GDBのcommands
コマンドを使用して、ブレークポイントに達するたびに実行するGDBコマンドのリストを設定することができます。私はこれが信じられないほど便利だと思います。
私は、彼らが編集しやすいとsource
コマンドを使用して再ロードすることは容易になるように、あなたのGDBを書くことは、ファイルにコマンドを示唆しています。あるいは、GDBコマンドラインでロードするコマンドファイルを指定したり、.gdbinitを使ってそれらを自動的にロードさせることができます。
commands
の良い使用例:
は、私は他の機能の多くによって呼び出される関数format
があるとします。私はそれを打破したいが、関数do_step_3
が呼び出された後でなければならない。あなたがブレークポイントで行うのと同じ方法でウォッチポイントに条件を設定することができます
break func
commands
watch var
continue
end
優れた点!ありがとう! – Tim
:
break do_step_3
commands
break format
continue
end
次のようなもので、あなたの問題のためにこれを使用することができます。これはin the documentationですが、それ自体はほとんど注目されていません。
condition
コマンドがないようwatch my_var if my_var > 3
は、うまく動作します。
それは見ている変数がスコープ外になった場合、ウォッチポイントを再作成するには、斬は説明したように、GDBは関数の先頭にブレークポイントを使用してこれを自動的に行う必要があります。
範囲外のウォッチポイントは、メモリアドレスに設定することで設定できます。
(gdb) p &var1
$1 = (int *) 0x41523c0
(gdb) watch *(int *)0x41523c0
Hardware watchpoint 1: *(int *)0x41523c0
これは他のデータ型とポインタでも機能します。
これは便利ですが、ここでは機能しません。ローカル変数は関数呼び出し間で同じアドレスを保持しませんが、他のスタック変数はそのメモリ位置を使用する可能性があります... – Nick
- 1. gdbまたはlldbにウォッチポイントを設定できません
- 2. Rubyバインディング - ローカル変数と定数のスコープ
- 3. Ocaml変数スコープはどのように機能しますか?
- 4. 複数の条件を使用した条件付き書式設定 - Excel 2007
- 5. 現在のスコープ内のすべてのPHP変数をどのようにダンプできますか?
- 6. 複数のフィールドに基づく条件付き書式設定
- 7. 変数値を条件付きで1行に設定する方法は?
- 8. 角度 - スコープ変数を使用してモデルを設定する
- 9. as3はどのようにイベントハンドラのスコープを設定しますか?
- 10. 関数の結果を変数に設定しようとしています
- 11. 最終的なローカル変数に応じて匿名の内部クラスに条件付きブレークポイントを設定するにはどうすればよいですか?
- 12. スコープの先頭にC89ローカル変数を宣言しますか?
- 13. 外部スコープの変数をWF 4アクティビティから動的に設定する
- 14. Ruby on Rails 2.3.8:ユニットテストを設定してエラーが発生した場合、現在のスコープ内のすべての変数を出力できるようにするにはどうすればよいですか?
- 15. 現在のスコープのjQuery/plainJS変数/関数を、現在のスコープから呼び出された無名関数に渡します。
- 16. アクティブレコードコールバック。彼らはどのように変数/スコープにアクセスできますか?
- 17. VBAによる条件付き書式設定または書式設定
- 18. Python条件変数設定
- 19. ウェブフォームドロップダウンメニューの条件付きJavaScriptを設定していますか?
- 20. CLONE()およびCLONE_STOPPEDフラグをLinux用に設定した場合の使用
- 21. コールバックのスコープを実行する場所に設定していますか?
- 22. ラムダと参照ローカル変数によるキャプチャ:スコープの後のアクセス
- 23. EPPlusを使用した式による条件付き書式設定
- 24. 変数を現在の日付と日付に設定するにはどうすればいいですか?
- 25. 外部スコープの変数にアクセスしていますか?
- 26. makefileへの変数に基づく条件付き合併症
- 27. どのようにして現在のスコープに「必要」するのですか?
- 28. 条件変数の前にミューテックスを置くと、どのように多くのスレッドが条件変数を待つことができますか?
- 29. Netbeansの特定の値の変数に条件付きでブレークポイントを設定するにはどうすればよいですか?
- 30. ggplotによる条件付きテキストの書式設定
私はC++を使用しています。私は変数の値を変更するコードの多くの場所がある可能性があるので、ブレークポイントを越えてウォッチポイントを使用します。したがって、各場所にブレークポイントを追加するのは現実的ではありません。条件付きウォッチポイントを設定できるかどうかを確認したいと思います。 – Tim