Visual Studio常用调试技巧

Visual Studio常用调试技巧

因为我代码能力很菜,debug能力更菜,常常自己写的代码报错也不知道哪里有问题,该去哪里改,调半天也调不出来,就很奔溃。最近自己摸索了很久,虽然长了猪脑,但是也算有一点进步。写一点总结,给自己一个提醒,怕以后又忘记了。

一.调试

调试按钮
点击调试,可以开始调试。有时候自己会配置一些外部的库,需要注意调试平台(debug/release,x64/x86)是不是和所用库相符合

二.断点

断点用于通知调试器何时何处暂停程序的执行,通过点击左边栏或者按F9键在当前行添加断点。在加断点之前,你需要知道你的代码将会出现什么错误,在什么地方停止执行。
添加断点
添加完断点后,按F5键启动调试,当程序执行到断点处时,自动暂停执行。此时你有多种方式来检查代码。命中断点(hit the breakpoint)后,断点处会有一个黄色的箭头,意指下一步将执行此行,即断点所在行还没有被执行。

如果断点处是调用了某个函数,想要进入进入函数内部去看怎么执行的,可以利用以下三个,分别为逐语句、逐过程、跳出(下图红色框中)。
在这里插入图片描述

1.逐语句(可进入函数内部)

断点执行至某个函数,想要进入函数内部时,点击逐语句
逐语句
可以看到执行进入函数内部了,这时候可以在函数内加断点。或者此时想要一步一步执行,可以点击逐过程。

2.逐过程(不进入函数内部)

逐过程也是一步一步执行,但是断点打在调用函数的地方,点击逐过程时他不会进入函数内部,会直接把这个函数执行完。

3.跳出

当你在一个方法内部调试时会用到它。如果你在当前方法内跳出,调试器会完成此方法的执行,之后在调用此方法的语句的下一条语句处暂停。

4.继续

它会继续程序的执行直到遇到下一个断点,快捷键是 “F5”。

5.断点窗口

断点窗口
调试过程中,可以在断点窗口中看到所有断点的位置,双击可以直接跳转到断点所在行。可以在该窗口中对断点进行一些操作(具体什么操作,其实我也不太会,还需慢慢摸索)。

三、自动窗口

这些变量由VS调试器在调试的时候自动检测。VS检测与当前语句相关的对象或变量,基于此列出Autos变量。Autos Variable的快捷键是Ctrl + D + A。
自动窗口

四、局部变量

列出当前方法中的所有变量。当调试器停在某特定断点并打开Autos窗口时,将展示当前范围中与此值相关的变量。
局部变量

五、监视

如果想对某个或某几个变量进行监视,又不想在自动窗口或即时窗口中找,就可以对它添加监视,可以添加任意多个变量。添加方法是,右击变量并选择“添加监视”。此时可以在监视窗口中看到该变量;添加监视也可以直接在监视窗口中,输入想要监视的变量名。
添加监视
在监视窗口中,可以对变量的值进行修改,相当于对该变量进行重新赋值。这里需要注意的是,如果在一个for循环中(如下图例子),对i添加监视,如果循环过程中,对i值进行修改,比如循环第20次(i=19)时,修改i值为40,此时也仅仅是改变了i值,中间i=20、21、22…39是没有被执行的。(因为我以前一直以为是执行的,所以提醒一下自己!)
for循环

六、调用堆栈

使用“调用堆栈”窗口可以查看当前堆栈上的函数或过程调用。 “调用堆栈”窗口显示方法和函数被调用的顺序,越往下,越是外层的函数。 调用堆栈是检查和理解应用执行流的好方法。
调用堆栈
看着好像没什么用的样子,但是我们有时候会遇到错误,执行跳转到一个莫名其妙的不是自己写的(库函数)代码的地方,看也看不懂,就可以利用这个堆栈窗口,从内层开始一层层找到自己写的函数去检查错误。

七、即时窗口

即时窗口是开发人员常用的功能。它可以在不改变当前调试步骤的情况下修改变量值或者执行一些语句。我们可以通过菜单 调试 > 窗口 > 即时(Debug > Window > Immediate Window)打开即时窗口。即时窗口支持一组命令,可在调试的任何时刻执行。它也支持Intellisense。在调试期间,我们可以在即时窗口中执行任何命令或者代码语句。
即时窗口

八、总结

简单总结了下常用的调试方法,包括断点以及各窗口的简单使用,希望能在debug之路上有所进步。实际上应该还有很多我还没学会的操作,未来也会继续学习,进阶一下。

也希望这篇文章能给和我一样不会debug的人一点帮助,千万不要指望别人给你调代码,万事只能靠自己,一定要动手去操作,多自己摸索摸索,虽然可能常常会心态崩掉,但是自己搞出来还是会很有成就感的!

九、参考博客

https://blog.csdn.net/qq_35637562/article/details/79369034
https://www.cnblogs.com/didiaodidiao/p/9187024.html

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值