gpt4 book ai didi

c# - DebuggerStepThrough 属性 - 如何也跳过子方法

转载 作者:行者123 更新时间:2023-11-30 20:15:34 24 4
gpt4 key购买 nike

在 Visual Studio 调试器中工作时,我一直在使用 System.Diagnostics.DebuggerStepThrough 属性来跳过代码。
但是,有时我希望它也跳过从我应用了 DebuggerStepThrough 属性的方法中调用的任何方法。

有没有办法做到这一点?
我不希望这影响我应用此属性的所有方法,但是有时我不希望任何调用/用于打开调试器的代码用于我应用的方法中调用的所有方法这个属性。

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() 调用时,您单步执行代码,而不是在 中结束Method2,代码执行会继续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");
}

关于c# - DebuggerStepThrough 属性 - 如何也跳过子方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53990317/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com