(*) Break point

我们用一个简单的实例来学习一下断点的高级功能。

for (int i = 0; i < 10; i++)
{
    for (int j = 0; j < 10; j++)
    {
        ;//这里设置断点
    }
}

为了一次用到所有的高级功能,我们设一个目标:要在当i的值改变的时候,且这个断点的前两次我们不关心,只关心第三次以及以后的。而且我们不想在断点处暂停程序,而是把i和j的值打印出来。

为了达到这个目的,在断点上右击鼠标,出现下图:

Untitled2

分别在Condition里设置“当i改变的时候”, Hit Count里设置“第三次即以后”,When Hit里设置要打印的语句以及在断点处不停。When Hit比较复杂一些,下面是图解:

Capture 这里勾选了Continue execution让它在断点处不停下来,继续执行。还可以看到打印某个变量的值的语法,即把这个变量用{}括起来。

设置好断点以后,当我们把鼠标放在断点上时,会出现一个tip,这个断点的条件说明一览无余,见下图:

Untitled

当断点不停的时候,它会变成一个菱形,否则是我们通常所见到的圆形。

我们debug这个程序,在output window里会打印处以下的日志:

Function: WinFormTest.Form1.button1_Click(object, System.EventArgs), Thread: 0x4E8 Main Thread-----[i=2, j=0]
Function: WinFormTest.Form1.button1_Click(object, System.EventArgs), Thread: 0x4E8 Main Thread-----[i=3, j=0]
Function: WinFormTest.Form1.button1_Click(object, System.EventArgs), Thread: 0x4E8 Main Thread-----[i=4, j=0]
Function: WinFormTest.Form1.button1_Click(object, System.EventArgs), Thread: 0x4E8 Main Thread-----[i=5, j=0]
Function: WinFormTest.Form1.button1_Click(object, System.EventArgs), Thread: 0x4E8 Main Thread-----[i=6, j=0]
Function: WinFormTest.Form1.button1_Click(object, System.EventArgs), Thread: 0x4E8 Main Thread-----[i=7, j=0]
Function: WinFormTest.Form1.button1_Click(object, System.EventArgs), Thread: 0x4E8 Main Thread-----[i=8, j=0]
Function: WinFormTest.Form1.button1_Click(object, System.EventArgs), Thread: 0x4E8 Main Thread-----[i=9, j=0]

posted on 2009-10-27 13:42  MainTao  阅读(404)  评论(0编辑  收藏  举报