防止 VS 调试器在特定方法内停止

3 c# .net-4.0 visual-studio-2013

是否有一个选项/属性/...可以阻止 VS 的调试器停止特定方法内的调试会话?我这样问是因为我正遭受 .NET 4.0 类有时会触发的 BSoD 之苦Ping。有关详细信息,请参阅使用 Ping 时出现蓝屏。

private async Task<PingReply> PerformPing()
{
    // Do not stop debugging inside the using expression
    using (var ping = new Ping()) {
        return await ping.SendTaskAsync(IPAddress, PingTimeout);
    }
}
Run Code Online (Sandbox Code Playgroud)

gh9*_*gh9 6

调试器单步执行

有趣的是,您可以在方法级别或类级别设置它。

指示调试器单步执行代码而不是单步执行代码。这个类不能被继承。

测试用

using System;
using System.Diagnostics;

public class Program
{
    [DebuggerStepThrough()]
    public static void Main()
    {
        try
        {
            throw new ApplicationException("test");
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.ToString());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

并且调试器没有停止在 MAIN 方法中

  • 应该注意的是,这取决于您的“Just My Code”设置。如果您选中了“仅我的代码”,则此答案将按描述工作。如果不是,则该属性实际上被忽略。 (2认同)