は、それが自動的に削除されます。それを一度設定し、同じ範囲に入るたびに自動的に生き続ける方法はありますか?どのようにローカルスコープの変数に対して永続および条件付きウォッチポイントを設定しますか?私は現在のスコープに変数のローカル用ウォッチポイントを設定した場合、スコープの外に行くとき
は
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. スコープ外の変数はどのように使用しますか? (エラー:CS0136)
- 3. ケース複数の条件をmysqlに設定した場合
- 4. Rubyバインディング - ローカル変数と定数のスコープ
- 5. Netbeansでウォッチポイントを設定するにはどうすればよいですか?
- 6. Ocaml変数スコープはどのように機能しますか?
- 7. 複数のテキスト値による条件付き書式設定
- 8. 現在のスコープ内のすべてのPHP変数をどのようにダンプできますか?
- 9. as3はどのようにイベントハンドラのスコープを設定しますか?
- 10. 複数の条件を使用した条件付き書式設定 - Excel 2007
- 11. 角度 - スコープ変数を使用してモデルを設定する
- 12. カルマテストのAngularJS設定スコープ変数
- 13. 複数のフィールドに基づく条件付き書式設定
- 14. 変数を現在のディレクトリに設定します
- 15. 変数値を条件付きで1行に設定する方法は?
- 16. 条件付きおよび条件なしの列からのSQLクエリによるグループまたは割合
- 17. 最終的なローカル変数に応じて匿名の内部クラスに条件付きブレークポイントを設定するにはどうすればよいですか?
- 18. Ruby on Rails 2.3.8:ユニットテストを設定してエラーが発生した場合、現在のスコープ内のすべての変数を出力できるようにするにはどうすればよいですか?
- 19. 関数の結果を変数に設定しようとしています
- 20. Excelで条件が複数ある場合の条件付き書式設定
- 21. アクティブレコードコールバック。彼らはどのように変数/スコープにアクセスできますか?
- 22. Excel 2010で変数入力を使用した条件付き書式設定
- 23. 設定変数を変更するとき、Herokuの_preboot_機能はどのように機能しますか?
- 24. 外部スコープの変数をWF 4アクティビティから動的に設定する
- 25. 現在のスコープのjQuery/plainJS変数/関数を、現在のスコープから呼び出された無名関数に渡します。
- 26. Express.static変数に変数を設定しようとしています
- 27. スコープの先頭にC89ローカル変数を宣言しますか?
- 28. GDBでウォッチポイントを設定する
- 29. ローカルに開発できるようにBluemix VCAP_SERVICES環境変数をローカルに設定しますか?
- 30. XSLを使用している条件の場合に変数の値を設定する
私はC++を使用しています。私は変数の値を変更するコードの多くの場所がある可能性があるので、ブレークポイントを越えてウォッチポイントを使用します。したがって、各場所にブレークポイントを追加するのは現実的ではありません。条件付きウォッチポイントを設定できるかどうかを確認したいと思います。 – Tim