7

ウォッチ変数 (プロパティではなく、通常の変数) が変更されたときに実行を中断して、変更が発生した場所を確認することは可能ですか? 私が探しているものではないように思われるプロパティに関連するこの質問を検索して見つけました。

この変数は数千行のコードで数回使用されていますがnull、問題が発生した場合にのみ変更されます。私たちはその問題を突き止めようとしています。

4

1 に答える 1

6
  1. f9変数の周りにブレークポイント ( ) を作成します
  2. ブレークポイントの赤い円を右クリックし、[条件...] をクリックします。
  3. 変数の名前を入力し、ラジオを「Has changed」に変更します
  4. ブレークポイント+には、条件付きであることを示す が含まれている必要があります。

ただし、率直に言って、特にフィールドの場合、次の方法の方が簡単ではるかに効率的です。次から始めるとします。

string name;

今のところ、次のように変更します。

private string __name;
string name {
    get { return __name; }
    set { __name = value; }
}

行にブレークポイントを配置するだけsetです。それでもコンパイルされるはずで、変更が簡単にわかります。より複雑な場合:

private string __name;
string name {
    get { return __name; }
    set {
        if(__name != value) {
            __name = value; // a non-trivial change
        }
    }
}

ブレークポイントを最も内側の行に置きます。これにより、値を実際に変更せずにフィールドを設定するコードがバイパスされます。

于 2013-02-14T11:53:47.793 に答える