DebuggerStepThrough 属性 - 如何也跳过子方法
DebuggerStepThrough Attribute - How to also skip child Methods
我一直在使用 System.Diagnostics.DebuggerStepThrough
属性在 Visual Studio 调试器中工作时跳过代码。
但是,有时我希望它也跳过从我应用 DebuggerStepThrough
属性的方法中调用的任何方法。
有办法吗?
我不希望这影响我应用此属性的所有方法,但是有时我不希望 called/used 的任何代码为方法中调用的所有方法打开调试器我'已应用此属性。
static void main(string[] args)
{
Method1();
}
[DebuggerStepThrough()]
private static void Method1()
{
Method2(); 'The Debugger is stopping in Method2 when I am manually stepping through the code
}
private static void Method2()
{
'... Code I don't care about however debugger is stopping here.
}
所以上面的代码示例是我 运行 的示例。
有没有办法让我告诉 Visual Studio 也跨过从 Method1()
中调用的方法?
目前,当我手动单步执行 Visual Studio 中的代码时,我发现我必须将 [DebuggerStepThrough()]
属性添加到所有被调用的方法中,即使它们是从在应用了属性的方法中。在此示例中,调试器在 Method2()
内停止。
我希望有一种方法可以让我不必将此属性应用于从 Parent 方法调用的所有方法。
也许我只是缺少一些简单的东西。
在单步执行时要跳过的方法中添加 DebuggerStepperBoundaryAttribute。
在示例代码中,当执行停止在 Method1()
调用时,您单步执行代码,而不是在 [ 中结束=12=],代码会继续执行Console.WriteLine("Suddenly here")
(当然Method1
和Method2
中的代码都是运行):
static void main(string[] args)
{
Method1();
Console.WriteLine("Suddenly here");
}
[DebuggerStepThrough, DebuggerStepperBoundary]
private static void Method1()
{
Method2();
}
private static void Method2()
{
//Skipped
Console.WriteLine("Skipped but still printing");
}
我一直在使用 System.Diagnostics.DebuggerStepThrough
属性在 Visual Studio 调试器中工作时跳过代码。
但是,有时我希望它也跳过从我应用 DebuggerStepThrough
属性的方法中调用的任何方法。
有办法吗?
我不希望这影响我应用此属性的所有方法,但是有时我不希望 called/used 的任何代码为方法中调用的所有方法打开调试器我'已应用此属性。
static void main(string[] args)
{
Method1();
}
[DebuggerStepThrough()]
private static void Method1()
{
Method2(); 'The Debugger is stopping in Method2 when I am manually stepping through the code
}
private static void Method2()
{
'... Code I don't care about however debugger is stopping here.
}
所以上面的代码示例是我 运行 的示例。
有没有办法让我告诉 Visual Studio 也跨过从 Method1()
中调用的方法?
目前,当我手动单步执行 Visual Studio 中的代码时,我发现我必须将 [DebuggerStepThrough()]
属性添加到所有被调用的方法中,即使它们是从在应用了属性的方法中。在此示例中,调试器在 Method2()
内停止。
我希望有一种方法可以让我不必将此属性应用于从 Parent 方法调用的所有方法。
也许我只是缺少一些简单的东西。
在单步执行时要跳过的方法中添加 DebuggerStepperBoundaryAttribute。
在示例代码中,当执行停止在 Method1()
调用时,您单步执行代码,而不是在 [ 中结束=12=],代码会继续执行Console.WriteLine("Suddenly here")
(当然Method1
和Method2
中的代码都是运行):
static void main(string[] args)
{
Method1();
Console.WriteLine("Suddenly here");
}
[DebuggerStepThrough, DebuggerStepperBoundary]
private static void Method1()
{
Method2();
}
private static void Method2()
{
//Skipped
Console.WriteLine("Skipped but still printing");
}