Visual Studio Debug实战教程之断点操作
前言
调试技巧是衡量程序员水平的一个重要指标.掌握好的调试技巧与工具的使用方法,也是非常重要的.
Visual Studio 调试程序有助于你观察程序的运行时行为并发现问题。 该调试器可用于所有 Visual Studio 编程语言及其关联的库。 使用调试程序时,可以中断程序的执行以检查代码、检查和编辑变量、查看寄存器、查看从源代码创建的指令,以及查看应用程序占用的内存空间。
断点,可以说是 Debug 过程中最常用的功能。
但是大家最熟悉最经常使用的可能就是普通的断点。其实,关于断点,Visual Studio 有很多的高级功能,有些简直就是调试利器啊。
本次教程将介绍 Visual Studio 关于断点的更多高级玩法。
1. 普通断点
为了保证内容完整性,还是要说下普通断点。
设置普通断点的方法很简单,就是在代码行的左边栏灰色区域点击或者把光标放在某代码行,按下 F9。
如上图所示,此时左边栏出现的红色圆点就代表了一个断点。
按下 F5, Debugger 就会在此处停下来。
2. 条件断点
不像是普通的断点,程序每次执行都会停下来。条件断点的意义是,只有在条件被满足时,Debugger 才会在此处停下来。
设置条件断点一般的方法是在红点处右键选择条件或者把光标放在红点处,等待齿轮图标出现并点击。
条件断点设置窗口如下。
总共有三种类型的条件断点:
条件表达式 (Conditional Expression)
命中次数 (Hit Count)
筛选器 (Filter)
条件表达式
条件表达式也有两种类型:
为 ture (Is ture)
如下图示,此处设置的条件为: 当 testInt == 4 is ture 时命中断点。
更改时 (When changed)
如下图示,此处设置的条件为: 当 testInt 被更改的时候命中断点。
命中次数
命中次数在 Debug 循环语句时非常有用。
比如你怀疑程序出错点发生在 N 次循环之后或者某些次循环,那么可以设置循环语句内的命中次数,让它在某些次或者某次循环停下来,而不是每次都停下来。
如下图,设置的条件为:让它每隔一次循环断下来。
筛选器
筛选器是用来限制断点命中时所在的设备、进程和线程。
比如,在一个多线程的程序中,你不必手动 GetThreadId,可以通过筛选器,设置让它只在某线程中执行到此处时停下来。
筛选器表达式用法为:
MachineName = "name"
ProcessId = value
ProcessName = "name"
ThreadId = value
ThreadName = "name"
多个表达式之间可以使用运算符 & (AND),
栏目分类
- OCH中文网
- OCH中文网