大家中秋和国庆快乐哦🆗,真的耍的太开心了,今天我们抽出一点点时间来讲解VS实用调式技巧!使用的是:VS2022
在我们刚开始学习编程的时候,我们可能去模仿其他人的代码。到我们自己去写代码的阶段时候,我们可能20%的时间来写一个项目代码,80%的时间我们都会去调式代码。对于程序员来说,比写程序更加困难的事情一定是找出自己所写程序的错误。所以说学会调试代码是一件很重要的事情。这样我们就有了自己解决问题的能力。
什么是bug?
第一次被发现的导致计算机错误的飞蛾,也就是第一个计算机程序的错误。我们今天最爱说的“bug”的由来。它的意思,和原身一致,真就是“一只臭虫”
第一个程序臭虫(Bug)的由来 - 知乎 (zhihu.com)
调式是什么?有多重要?
一名优秀的程序员也是一名出色的侦探。每一次调试都是尝试破案的过程。
调试是什么?
调试(英语:Debugging/Debug),又称除错,是发现和减少计算机程序或电子仪器设备中程序错误的一个过程。
是否我们在调试过程是以下情形:迷信式调试!!拒绝!!
调试的基本步骤
- 发现程序错误的存在(发现错误存在一般有三种人程序员自己/测试人员/用户)
- 以隔离和消除等方式对错误定位
- 确定错误产生的原因
- 提出纠正错误的解决办法
- 对程序错误予以改正,重新测试
debug和release的介绍
简单来说,当我们去实现产品项目,需求------→设计和开发-----→测试------→产品验收-----→发布这都是必不可少的。程序员我们在开发使用的是:Debug版本。测试人员站在用户的角度上是使用:Release版本。
那二者有什么区别呢?
经过在不同的版本底下,运行程序。我们查看发现Release相较于Debug版本使用的内存空间要少的多!这就是因为Debug有调试信息且没有任何的优化。
windows环境调试介绍
1.调试环境的准备
2.学会快捷键
简单介绍几个常用的快捷键:
- F5: 启动调试,经常用来直接调到下一个断点处。
- F9: 创建断点和取消断点 断点的重要作用,可以在程序的任意位置设置断点。这样就可以使 得程序在想要的位置随意停止执行,继而一步步执行下去。
- F10:逐过程,通常用来处理一个过程,一个过程可以是一次函数调用,或者是一条语句。
- F11:逐语句,就是每次都执行一条语句,但是这个快捷键可以使我们的执行逻辑进入函数内部
- CTRL+F5:开始执行不调试,如果你想让程序直接运行起来而不调试就可以直接使用。
- 以上都是必须掌握的,如果没有效果在你的电脑上,请配合Fn使用!
!想了解更多的快捷键:VS中常用的快捷键_vs快捷键-CSDN博客
F11 VS F10
简单来说,F11和F10的差别就是。F11会据语句执行,也就会调试函数内部。 F10会把函数当成一个过程去执行,一步执行到位。
F11------->进入test( )函数内部 ------->打印hehe----->出来test( )函数
F10------>test( )函数过程执行打印hehe----->执行下一条语句
F9 & F5
F9和F5是配合使用。F9是负责断点的创建核销(遇到循环可以设置条件断点)。(光标放在需要设置断点位置)F5直接来到断点(遇到断点停下),前面全部程序一步到位执行。
鼠标的光标放在for循环------>F10设置断点成功---->F5直接来到断点(hehe已经再屏幕上打印)
特别注意
在循环处设置断点,F5会执行循环的次数,例如上面代码会执行10次for循环。
是程序逻辑上的断点,并不是物理上的断点。
当然也可以设置多个断点
当循环次数比较多,我们需要跳到某个特定的循环次数时,我们可以设置条件断点。
3.调试时查看程序当前信息
开始【调试】后才能在【窗口】中看到这些信息。
查看临时变量的值
在调试开始之后,用于观察临时变量,局部变量等的值。
当然自动窗口和局部变量都是可以使用的,我们最常用的还是【监视窗口】
查看内存信息
在调试开始之后,用于观察内存信息。
查看调用堆栈
在调试开始之后,通过调用堆栈,可以清晰的反应函数的调用关系以及当前调用所处的位置
调用堆栈,反应的是函数的调用逻辑
查看汇编信息
在调试开始之后,有两种方式转到汇编:
1.右击鼠标,选择【转到反汇编】 2.选择【调试窗口】,选择【转到反汇编】
汇编代码
查看寄存器信息
调试开始之后,可以查看当前运行环境的寄存器的使用信息。
4.多多动手,尝试调试,才有进步
- 一定要熟练掌握调试技巧
- 熟悉编译环境和快捷键的使用,提高写代码和调试的效率
- 以上所讲都是简单的调试,后面会有复杂的调试场景:多线程程序调试等等
- 初学者80%可能在写代码,20%迷信调试。但是一个程序员可能20%在写程序,80%在调试。
✔✔✔✔✔最后,感谢大家的阅读,若有错误和不足,欢迎指正!
下篇博文我们介绍一些实例和总结错误。
代码------→【唐棣棣 (TSQXG) - Gitee.com】
联系------→【邮箱:2784139418@qq.com】