C# DebuggerStepThrough特性讲解

C# DebuggerStepThrough特性讲解

调试代码的时候经常会遇到一个函数M1调用函数M2,M2调用M3……。Debug的时候需要一层层进去找那里出现了Bug。但是如果我们非常确定一些部分永远不会出现bug的时候就没有必要去看这些方法,更没有必要让调试器运行到这些肯定不会出错的地方来影响调试。此时对于不需要调试的函数可以用DebuggerStepThrough这个特性来标识一下,调试器就不会运行到此函数内部

    private static void Main(string[] args) {
        M1();
        Console.ReadKey();
    }

    [DebuggerStepThrough]
    private static void M1() {
        //调试器不会走到内部
        Console.WriteLine("this is M1");
        M2();
    }

    private static void M2() {
        Console.WriteLine("this is M2");
        M3();
    }

    private static void M3() {
        Console.WriteLine("this is M3");

    }

当我们非常确定M1中的方法肯定正确时可以不用去关系内部的实现。但是M1内部调用了M2,标注的特性DebuggerStepThrough只是不会走到M1内部,但是可以运行到M2,甚至M3。如果想要屏蔽所有跟M1有关的代码的话,需要用另外一个特性来告诉调试器参与调试代码的边界,这个特性是DebuggerStepperBoundary

代码如下:

    private static void Main(string[] args) {
        M1();
        Console.ReadKey();
    }

    [DebuggerStepThrough]
    [DebuggerStepperBoundary]
    private static void M1() {
        //调试器不会走到内部
        Console.WriteLine("this is M1");
        M2();
    }

    private static void M2() {
        Console.WriteLine("this is M2");
        M3();
    }

    private static void M3() {
        Console.WriteLine("this is M3");
    }

此时调试器不会运行到任何与M1相关的代码中,除非显示的打了断点

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值