(*) Break point
我们用一个简单的实例来学习一下断点的高级功能。
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
;//这里设置断点
}
}
为了一次用到所有的高级功能,我们设一个目标:要在当i的值改变的时候,且这个断点的前两次我们不关心,只关心第三次以及以后的。而且我们不想在断点处暂停程序,而是把i和j的值打印出来。
为了达到这个目的,在断点上右击鼠标,出现下图:
分别在Condition里设置“当i改变的时候”, Hit Count里设置“第三次即以后”,When Hit里设置要打印的语句以及在断点处不停。When Hit比较复杂一些,下面是图解:
这里勾选了Continue execution让它在断点处不停下来,继续执行。还可以看到打印某个变量的值的语法,即把这个变量用{}括起来。
设置好断点以后,当我们把鼠标放在断点上时,会出现一个tip,这个断点的条件说明一览无余,见下图:
当断点不停的时候,它会变成一个菱形,否则是我们通常所见到的圆形。
我们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]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架