TOC

This article is currently in the process of being translated into Chinese (~90% done).

Debugging:

Advanced breakpoints

前面已经介绍过如何设置断点。不过与断点相关的内容还有很多,尤其是使用Visual Studio时。可惜,微软似乎在某些快捷版本中禁用了这些调试功能,但也不用担心:这些功能有固然好,没有也没什么。而对于使用Visual Studio的用户,这里会介绍一些与断点相关的有用功能。设置断点后即可使用这些功能,鼠标右键点断点,选择想要的功能即可。

条件中断

此选择允许指定一个必需为true或变化的条件,作为中断的条件。调试复杂代码,需要执行只在特定环境才中断时,此功能就很有用。比如,可能有个循环要重复多次,直到遇到相关代码 - 对此类情形,可以简单地设置一个断点,并配置一个合适的条件。下面是个无聊的例子,展示条件中断的用法:

static void Main(string[] args)
{
    for(int i = 0; i < 10; i++)
        Console.WriteLine("i is " + i);
}

在输出到控制台那一行设置断点。运行程序 - 循环每次重复时都会触发中断。实际调试时可能并不希望这样。也许只需要在i等于4时中断(第4次重复时)。这可以通过配置一个简单的条件实现:

i == 4

此时断点上会出现一个小白加号,运行程序时,此断点只会在变量i等于4时中断。也可以使用“改变”选项以指示调试器只在上述表达式值改变时执行才中断,比如,其值由false变为true。

执行次数

使用此配置框可以设置另一种条件,是基于此断点代码行被执行次数的。比如,可以指定断点在被执行多少次之前不中断执行。有多种选择可控制此行为,取决于调试需要,在调试时,可以检查此配置框以观察此断点代码已被执行多少次了。

执行时行为……

使用此设置框可以定义断点代码被执行时的替代行为。这通常很有用,因为有时不希望执行中断,但又想输出一个状态信息,或激活某个宏操作。此功能允许定义输出的定制消息,可以包含执行中任何类型的信息。对高级用户来说,断点被执行时激活一个特定的宏操作的选项也非常有用。


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!