任意タイミングでデバッガに制御を移行

方法は簡単、条件を判断して自分で例外をスローすればいいだけ。
Keyboard key = Keyboard.GetState();
if (key.IsKeyDown(Keys.LeftAlt) && key.IsKeyDown(Keys.LeftShift) && key.IsKeyDown(Keys.LeftControl) && key.IsKeyDown(Keys.D))
throw new Exception();

このコードを任意のところに突っ込めばブレークポイントで対処できないや、実行速度の速さが必要なときもデバッグできます。こんな簡単なことに今まで気づいていませんでした…。

これと同じことは、VSでブレークポイントを作ってブレークポイントを右クリックして「条件」というところで条件式をぶち込めばできますが
  1. 実行速度が遅くなる
  2. 1行しか書けないため変数とかを使って条件を判断するのが困難
ため、この方法の方が便利です。

コメント

  1. [...] ▼任意タイミングでデバッガに制御を移行(Oak Tree) ブレークポイントで対処できない場合のデバッグできるようになるそうです。 [...]

    返信削除
  2. 例外よりも、

    System.Diagnostics.Debugger.Break();

    の方が、例外メッセージも出ないので良いですよ。

    返信削除
  3. おお、そんなメソッドがあったんですね。C#は独学で学んだため勉強になります。

    ありがとうございました。

    返信削除

コメントを投稿

このブログの人気の投稿

初めてのC# -メモ帳でも作ってみる?-

【ファイル偽装】zipとしてもjpgとしても扱えるファイル