35

aspxページの特定の要素をクリックしたときに発生するバグを追跡しようとしています...

以前は、その特定のイベントを処理するクラスを追跡し、ヒットする必要があると思われるラインにブレークポイントを設定する必要がありました。最終的に正しいクラスを見つけるまでに、何度か試行する必要があります。特に、クラスがどこかに埋め込まれたユーザーコントロールである場合は...

そのため、aspxページの要素(ボタンなど)をクリックした後に実行されるコードの次の行でVisualStudioを中断させる方法があるかどうか疑問に思っています。スローされた例外を回避する方法があることを知っているので、私を助けることができる同様の何かがあるのではないかと思います。

この種の機能が不可能な場合は、デバッグしたいクラスをすばやく見つけるためのより良い方法を誰かが提案する可能性があります...

4

5 に答える 5

31

Debug> Break All( "pause")ボタンを試しましたか?(Ctrl+ Break

デバッグ>すべてを解除

通常、WinFormsアプリのメインフォームのShow()のように、スタックのかなり低い場所で壊れますが、ステップインしてそれを乗り越えると、この種の場合はかなりうまくいくことがよくあります。

于 2009-09-02T03:22:54.837 に答える
4

Step Into (F11)またはをお探しStep Over (F10)ですか?

- 編集

窓についても知っていCall Stackますか?それはあなたがあなたの場所と何が起こっているかを決定するのを助けることができます。

于 2009-09-02T03:21:24.903 に答える
2

条件付きブレークポイントがあなたの答えかもしれません。コードが壊れていると思われる場合に設定でき、条件が満たされた場合にのみ停止します。

于 2009-09-02T03:24:06.177 に答える
0

デバッグ->例外

CLR例外のスローをチェックします。

編集

CLR例外が発生している可能性があります。このメソッドを使用すると、例外が発生するとデバッガーは常に中断します。これは、スタックトレースを読み取る場合に比べて非常に便利です。

于 2009-09-02T03:21:43.560 に答える
0

いくつかのアイデア:

  • イベントハンドラーに一貫した命名規則を使用する場合は、それらすべてをグローバル検索してブレークポイントを追加するのは簡単です。最初のヒットでマクロをすばやく記録してから、マクロを再生して、操作を何度も繰り返すことによるすべての苦痛を取り除くことができます。少し練習すれば、数秒ですべてのハンドラーをフラットにブレークポイントできるようになります。

  • イベント用に追加のイベントハンドラーを追加し(コンストラクターなどで早期に作成します。これにより、アプリが追加する他のすべてのイベントハンドラーの前に追加されるため、最初に呼び出されることが望ましい)、ブレークポイントを設定します。ブレークポイントに到達したら、イベントの他のイベントハンドラーをシングルステップで実行できます。

  • クリックを処理し、新しいイベントを生成するだけのカスタムイベントハンドラーを作成します。他のすべてのイベントハンドラーをこのセカンダリイベントにアタッチします。次に、最初のハンドラーにブレークポイントを設定し、それが呼び出す2番目のハンドラーをステップスルーできます。

于 2009-09-02T05:16:39.007 に答える