3

ブレークポイントを設定するときに、コードの特定の部分をスキップできるようにしたいと考えています。たとえば、カードのデッキを作成するために 52 回反復するコード ブロックがあります。これは適切に機能しており、F11 を押してそのブロックを進み続ける必要はありません。デバッガーが次のメソッド呼び出しに進むように、これを「スキップ」する方法はありますか?

言語と IDE は VS 2008 の C# です。

4

4 に答える 4

5

以下をせよ

  • ループの後の最初の行を右クリックします
  • 「カーソル位置まで実行」を選択

これは、その行にブレークポイントを設定するのと同じことを行い、F5 キーを押すかのようにコードを実行し、ヒットしたらブレーク ポイントを削除します。

注: ループ コードの実行が別の実際のブレークポイントにヒットした場合、実行はクリックした場所ではなくそこで停止します。これが発生する可能性があると思われる場合は、単純にすべてのブレークポイントを無効にし、上記のトリックを実行してすべてのブレークポイントを再度有効にします。

于 2009-09-01T06:47:04.263 に答える
5

終了したい別のブレークポイントを設定し、F5を押します:)

于 2009-09-01T06:47:12.467 に答える
2

ブロックをスキップする方法はわかりませんが、ブロックの後にブレークポイントを配置するか、run-to-cursor (ctrl-F10 だと思います) を使用できます。

于 2009-09-01T06:48:15.570 に答える
2

オプションの場合は、そのコードを関数に移動し、[DebuggerStepThrough] 属性を関数に適用して、デバッグ中に常にスキップされるようにすることができます。

そのようです:

using System.Diagnostics;

namespace MyNamespace
{
    public class Utilities
    {
        [DebuggerStepThrough]
        public ThisIsAVeryLongMethod()
        {
            //
            // Code
            //
        }
    }
}

コードでステップスルーすると、デバッガーはメソッドに移動せず、次の行に進みます

ShortMethod1();
ThisIsAVeryLongMethod();
ShortMethod2();
于 2009-09-01T07:02:13.403 に答える