本次教程将分享一些 Visual Studio 比较实用的 Debug 小技巧。
为了准确和统一,小标题都使用了英文。
当你要重新启动 Debugger 的时候,不必先 Stop,再 Start。
可以按下 Debug 工具栏中的 Restart 按钮。
这样可以节约很多时间。
在某代码行右键选择 Run to Cursor,将启动 Debugger,同时会在当前行设置一个临时断点。
如果此代码行前面有断点,那么程序将会在第一个断点处停下来。
接下来可以不断按下 F5, 执行到刚才设置 Run to Cursor 的那一行。
这是 VS 2017 新增的功能。
在 Debug 的过程中,把光标移动到代码行的前面,会出现一个带框的绿色箭头。
按下此箭头,可以让程序快速执行到该代码行。
此功能叫 Run to Click。
它的作用也是设置临时断点,好处是节省了按下 F9 和 F5 的时间。与 Run to Cursor 相比,使用更为便捷。
Debug 的过程中,通过 Data Tips 查看某些变量的值,常规的做法是,把光标放在想要查看的变量上,等 Data Tips 出现。
如果想要频繁查看变量值的话,这样会比较麻烦。
其实,可以按下 Data Tips 窗口旁边类似于钉子的按钮,这样就可以把 Data Tips 窗口 Pin 住。
即使重启 Debugger,它依然是保持 Pin 的状态。另外,可以同时 Pin 住多个变量的 Data Tips。
个人觉得,这个功能跟把变量放进 Watch 窗口查看,效果是一样的。
此功能仅针对托管代码。
默认情况下,Debug 不会跳进 properties(属性)和 fields(字段)。
但是 Step Into Specific 可以使它这么做。
如上图,在 Path 属性上右键选择 Step Into Specific,然后选择合适的选项,进入 Path.set。
动图。
当 Debugger 在某一行停下来的时候,可以用鼠标移动左侧的黄色箭头,更改代码执行流程。
黄色箭头新移动到的位置代表下一条即将要执行的语句,可以往前移动,也可以往后移动。
用这个方法,可以在不 Restart Debugger 的情况下,重新运行代码,或者用来跳过已知有 Bug 的代码段。
注意:往前移动黄色箭头,不会使程序返回到之前的状态。往后移动黄色箭头,中间跳过的代码段也不会被执行到。
动图。
VS 支持的大部分编程语言,都可以在 Debug 的过程中编辑代码,而不必重新编译运行。
只要编辑代码,接着按下 F5,F10 或者 F11, 就能继续 Debug 了。
默认情况下,Debug 过程中只会显示用户代码,Framework 代码、第三方库和系统调用会被忽略。
假如想要在调试过程中查看 Framework 代码、第三方库和系统调用,可以使用 VS 的 Just My Code 功能。
在 Tools / Options / Debugging 菜单下 ,禁用 Just My Code (仅我的代码) 即可 。
当你很难复现一个问题或者达到某个状态非常的耗时,可以试下条件断点是否有帮助。
具体做法是在断点的红点处右键选择「条件」或者把光标放在红点上,等待「齿轮」按钮出现并点击。如上第一幅图。
此时可在出现的设置窗口中设置条件断点。如上第二幅图。
条件断点的含义是只有在条件满足的情况下,此断点才会被触发。
本例中,只有在 data==5 的时候,断点才会停下来。
有的时候,函数的返回值在代码中并没有用变量明确保存下来。
这种情况下,可以通过 Auto 窗口或者 Immediate 窗口方便的查看函数的返回值。
注意:在 Auto 窗口查看函数的返回值,一定要在此函数被刚执行完的时候。
代码中出现字符串的时候,使用字符串可视化工具能够非常方便的查看格式化后的字符串。
具体方法是: Debug 过程中,把光标悬停在想要查看的字符串旁边,等待出现 Data Tips,然后再点击查找符号旁边的下三角,选择查看 Plain text,XML,HTML, 还是 JSON 字符串。
使用字符串可视化工具,可以方便直观的查看字符串是否存在格式错误。
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
加入交流群
请使用微信扫一扫!