这节聊聊如何使用VisualStudio进行断点调试。
在debug过程中,我们有时需要查看程序在运行到某一行代码时,上下文中的变量或者一些其他的数据是什么样的,我们就要设置断点(Breakpoint)。断点顾名思义,就是运行到打断点的这一行,程序就中断,暂停。下面就看看如何使用VisualStudio来断点调试C#代码。
如何断点:
在VS中,如何为代码设置断点呢,有这么两种形式:
第一个就是直接在想要断点的代码行,设置,断点位置如下图,鼠标点击代码行的最前头,出现红点即设置完成,对应的代码会出现红色背景(命中断点背景则是黄色)。
另一种方式就是将鼠标点击一下要断点的行,激活键入光标,再按F9即可。
(其实还有一种方式,没有什么具体的实用价值:在想断点的代码行右击鼠标弹出上下文菜单,选择插入断点即可。)
设置好断点后,就可以按F5或者点击启动即可开始调试代码,但注意启动模式要是Debug模式,Release是发布版本,不会命中断点。之所以我们能断点调试是因为在Debug模式下,代码在编译时会加入辅助元素,断点才会有效,发布版本在编译时不会加入这些辅助元素,所以断点是无效的。另外额外说明一点,如果已经调试完成,可以使用发布版本运行一次,发布版本因为是纯代码编译,运行性能要更好。
调试代码:
当运行到断点处时,程序会停下来,后续的代码都可以进行调试,调试分为逐语句和逐过程,逐语句就是一行一行的,遇到方法就跳转到方法内部,逐过程就是当遇到包含方法的代码不会进入方法内部。
命中断点后,将鼠标移动到变量上,就会弹出变量的当前值的窗口:
激活这个小窗口还可以更改变量的值。
如果要调试查看下一行代码,就可以按F10进行逐过程或者F11进行逐语句调试。
或者点击菜单栏中对应的按钮:
Continue是继续执行代码直到遇见下一个断点,后边的红色方框是停止程序运行,最后标记的三个不同方向的箭头则分别是逐语句,逐过程,和跳出正在执行的程序。
变量监视:
当命中断点后,vs窗口下方会自动启动几个窗口:
Autos可以自动显示断点处上下文中的变量及其值等信息。
Locals可以显示当前作用域中可以访问的所有变量信息。
Watch1可以自行添加要监视的变量,并且这个窗口可以添加多个。
条件断点:
我们可以为断点添加条件,这尤其适用于循环块中,比如用for循环5次,我们可以让其在循环值为3的时候停止,添加条件断点的方式就是移动鼠标到断点红点上,点击小齿轮,在弹出的框中设置即可:
断点操作:
我们可以设置在断点命中时执行向Output窗口输出自定义数据的操作:
在输入框中输入要输出的语句即可,用大括号包裹要输出的变量,下方可以选择命中时执行操作接着执行代码,也可以不选,不选就执行命中不继续执行了,这个看自己的需求。在输入框中输入要输出的语句即可,用大括号包裹要输出的变量,下方可以选择命中时执行操作接着执行代码,也可以不选,不选就执行命中不继续执行了,这个看自己的需求。
个人公众号,热爱分享,知识无价。