ブレークポイントを設定するときに、コードの特定の部分をスキップできるようにしたいと考えています。たとえば、カードのデッキを作成するために 52 回反復するコード ブロックがあります。これは適切に機能しており、F11 を押してそのブロックを進み続ける必要はありません。デバッガーが次のメソッド呼び出しに進むように、これを「スキップ」する方法はありますか?
言語と IDE は VS 2008 の C# です。
ブレークポイントを設定するときに、コードの特定の部分をスキップできるようにしたいと考えています。たとえば、カードのデッキを作成するために 52 回反復するコード ブロックがあります。これは適切に機能しており、F11 を押してそのブロックを進み続ける必要はありません。デバッガーが次のメソッド呼び出しに進むように、これを「スキップ」する方法はありますか?
言語と IDE は VS 2008 の C# です。
以下をせよ
これは、その行にブレークポイントを設定するのと同じことを行い、F5 キーを押すかのようにコードを実行し、ヒットしたらブレーク ポイントを削除します。
注: ループ コードの実行が別の実際のブレークポイントにヒットした場合、実行はクリックした場所ではなくそこで停止します。これが発生する可能性があると思われる場合は、単純にすべてのブレークポイントを無効にし、上記のトリックを実行してすべてのブレークポイントを再度有効にします。
終了したい別のブレークポイントを設定し、F5を押します:)
ブロックをスキップする方法はわかりませんが、ブロックの後にブレークポイントを配置するか、run-to-cursor (ctrl-F10 だと思います) を使用できます。
オプションの場合は、そのコードを関数に移動し、[DebuggerStepThrough] 属性を関数に適用して、デバッグ中に常にスキップされるようにすることができます。
そのようです:
using System.Diagnostics;
namespace MyNamespace
{
public class Utilities
{
[DebuggerStepThrough]
public ThisIsAVeryLongMethod()
{
//
// Code
//
}
}
}
コードでステップスルーすると、デバッガーはメソッドに移動せず、次の行に進みます
ShortMethod1();
ThisIsAVeryLongMethod();
ShortMethod2();