C#调试心经续

本文详细介绍了C#调试的各种高级技巧,包括设置断点的命中次数、断点过滤器、断点条件、断点位置,以及自定义调用堆栈。此外,还讲解了项目属性中的Debug选项卡配置、使用Trace.axd调试ASP.NET应用,以及如何连接到已运行的进程进行调试,特别是针对Windows服务和SQL存储过程的调试方法。最后,讨论了调试多个项目和设置仅在特定异常时中断的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于上篇文章漏了一些比较重要的知识,在此文中补充。

 

断点篇

 

 

命中次数 (Hit Counts)

右击断点,可以设置 Hit Counts(命中次数 ),会弹出如下的对话框

 

 

 当条件满足的时候断点会被命中(即即将被执行),这个命中次数是断点被命中的次数。默认是始终 break,选项有如下的几种:始终 break;当命中次数达到多少次时 break;当命中次数是多少的倍数时 break;当命中次数大于等于多少的时候 break

 

 

 于是在上篇中的条件也可以这样实现,设置命中次数等于 50的时候 break,按 F5后,断点被触发,此时 i=50

 

 

点过滤器

我们可以限制断点在特定的处理器和进程中。可以设置机器名、进程 id、进程名、线程 id、线程名中的某些条件来过滤一些断点。

 

注意: ThreadId需要特别说明一下, ThreadId并不是托管程序中, .NET 框架中 System.Threading.Thread.ManagedThreadId,两者不能等同。简单来说, ManagedThreadId是线程在 CLR中的标识符,而 ThreadId却是线程在操作系统中的标识符。因此 ThreadId需要从调试器中的“ Threads”窗口中获取。

 

 

 

断点条件

我们可以设置断点达到的条件,如下图,我们设置表达式为 i==5 注意是判相等,而不是赋值的等于 ),按 F5,断点再次被触发,此时 i=50

 

还有一个选项是已经被改变,则里面条件是具体的变量,如我们的代码如下

private  void  ConditionDebug()
{
            int  hitCount = 0;
            for

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值