3

問題をデバッグしようとしていますが、プロパティのゲッターにブレークポイントがあれば本当に助かりますが、UI のボタンの CanExecute 呼び出しから呼び出されるたびにブレークする必要はありません。私の考えでは、その文字列を含まないコール スタックでブレークポイントを条件付けするだけで済みましたが、うまくいかないようです。これを説明する最善の方法は、設定のイメージとヒットしたブレークポイントからの出力を使用することです。

ブレークポイント設定

画像でわかるように、ブレークポイントの条件付き設定は、ヒットすると直接出力され、出力では、数回ヒットされていることがわかります.get(): true-正しく。ただし、このスクリーンショットを撮ったとき、出力に見られるように、条件が false でヒットしていました。ブレークポイントにヒットしたため、プログラムが誤って停止しました。

私は何か間違ったことをしていますか - これはまったく可能ですか? VS2015 のバグのように思えます。出力は bool を正しく評価できますが、ブレークポイント条件でそれができないのはなぜですか?

編集して、いつか失われた場合に備えて画像に注釈を付けます。基になるフィールドを単に返すプロパティの get メソッドにブレークポイントがあります。ブレークポイント設定は、式が true を返した場合にのみヒットするように定義するブレークポイントに条件があることを示してい!Environment.StackTrace.Contains("CanExecute")ます。つまり、スタック トレースに「CanExecute」文字列が含まれていない場合にのみブレークします。ブレークポイント設定の Action 部分は、 を使用して関数名と条件式を単純に出力します$FUNCTION: {!Environment.StackTrace.Contains("CanExecute")}。アクションは実行を継続しないように設定されています。

4

1 に答える 1