VS的调式技巧你真的掌握了吗?

目录

什么是bug?

调式是什么?有多重要?

调试是什么?

调试的基本步骤

debug和release的介绍

windows环境调试介绍

1.调试环境的准备

2.学会快捷键

F11 VS F10

F9 & F5

3.调试时查看程序当前信息

查看临时变量的值

查看内存信息

查看调用堆栈

查看汇编信息

查看寄存器信息

4.多多动手,尝试调试,才有进步


大家中秋和国庆快乐哦,真的耍的太开心了,今天我们抽出一点点时间来讲解VS实用调式技巧!使用的是:VS2022

在我们刚开始学习编程的时候,我们可能去模仿其他人的代码。到我们自己去写代码的阶段时候,我们可能20%的时间来写一个项目代码,80%的时间我们都会去调式代码。对于程序员来说,比写程序更加困难的事情一定是找出自己所写程序的错误。所以说学会调试代码是一件很重要的事情。这样我们就有了自己解决问题的能力。

什么是bug?

第一次被发现的导致计算机错误的飞蛾,也就是第一个计算机程序的错误。我们今天最爱说的“bug”的由来。它的意思,和原身一致,真就是“一只臭虫”

 VS的调式技巧你真的掌握了吗?_第1张图片

第一个程序臭虫(Bug)的由来 - 知乎 (zhihu.com)

调式是什么?有多重要?

一名优秀的程序员也是一名出色的侦探。每一次调试都是尝试破案的过程。 

调试是什么?

调试(英语:Debugging/Debug),又称除错,是发现和减少计算机程序或电子仪器设备中程序错误的一个过程。

是否我们在调试过程是以下情形:迷信式调试!!拒绝!!

VS的调式技巧你真的掌握了吗?_第2张图片

调试的基本步骤

  • 发现程序错误的存在(发现错误存在一般有三种人程序员自己/测试人员/用户)
  • 以隔离和消除等方式对错误定位
  • 确定错误产生的原因
  • 提出纠正错误的解决办法
  • 对程序错误予以改正,重新测试

debug和release的介绍

VS的调式技巧你真的掌握了吗?_第3张图片

简单来说,当我们去实现产品项目,需求------→设计和开发-----→测试------→产品验收-----→发布这都是必不可少的。程序员我们在开发使用的是:Debug版本。测试人员站在用户的角度上是使用:Release版本

那二者有什么区别呢?

VS的调式技巧你真的掌握了吗?_第4张图片

VS的调式技巧你真的掌握了吗?_第5张图片

经过在不同的版本底下,运行程序。我们查看发现Release相较于Debug版本使用的内存空间要少的多!这就是因为Debug有调试信息且没有任何的优化。

windows环境调试介绍

1.调试环境的准备

VS的调式技巧你真的掌握了吗?_第6张图片

2.学会快捷键

简单介绍几个常用的快捷键:

  • F5:  启动调试,经常用来直接调到下一个断点处。
  • F9:  创建断点和取消断点 断点的重要作用,可以在程序的任意位置设置断点。这样就可以使           得程序在想要的位置随意停止执行,继而一步步执行下去。
  • F10:逐过程,通常用来处理一个过程,一个过程可以是一次函数调用,或者是一条语句。
  • F11:逐语句,就是每次都执行一条语句,但是这个快捷键可以使我们的执行逻辑进入函数内部
  • CTRL+F5:开始执行不调试,如果你想让程序直接运行起来而不调试就可以直接使用。
  • 以上都是必须掌握的,如果没有效果在你的电脑上,请配合Fn使用!

!想了解更多的快捷键:VS中常用的快捷键_vs快捷键-CSDN博客 

F11 VS F10

简单来说,F11和F10的差别就是。F11会据语句执行,也就会调试函数内部。 F10会把函数当成一个过程去执行,一步执行到位。

F11------->进入test( )函数内部 ------->打印hehe----->出来test( )函数

VS的调式技巧你真的掌握了吗?_第7张图片 VS的调式技巧你真的掌握了吗?_第8张图片

VS的调式技巧你真的掌握了吗?_第9张图片

F10------>test( )函数过程执行打印hehe----->执行下一条语句

VS的调式技巧你真的掌握了吗?_第10张图片

VS的调式技巧你真的掌握了吗?_第11张图片

VS的调式技巧你真的掌握了吗?_第12张图片

F9 & F5

F9和F5是配合使用。F9是负责断点的创建核销(遇到循环可以设置条件断点)。(光标放在需要设置断点位置)F5直接来到断点(遇到断点停下),前面全部程序一步到位执行。 

鼠标的光标放在for循环------>F10设置断点成功---->F5直接来到断点(hehe已经再屏幕上打印)

VS的调式技巧你真的掌握了吗?_第13张图片VS的调式技巧你真的掌握了吗?_第14张图片

特别注意

 在循环处设置断点,F5会执行循环的次数,例如上面代码会执行10次for循环。

 是程序逻辑上的断点,并不是物理上的断点。

 当然也可以设置多个断点

当循环次数比较多,我们需要跳到某个特定的循环次数时,我们可以设置条件断点 VS的调式技巧你真的掌握了吗?_第15张图片

VS的调式技巧你真的掌握了吗?_第16张图片 

3.调试时查看程序当前信息

VS的调式技巧你真的掌握了吗?_第17张图片开始【调试】后才能在【窗口】中看到这些信息。 

查看临时变量的值

在调试开始之后,用于观察临时变量,局部变量等的值。

VS的调式技巧你真的掌握了吗?_第18张图片

当然自动窗口和局部变量都是可以使用的,我们最常用的还是【监视窗口】 

查看内存信息

在调试开始之后,用于观察内存信息。

VS的调式技巧你真的掌握了吗?_第19张图片

查看调用堆栈

在调试开始之后,通过调用堆栈,可以清晰的反应函数的调用关系以及当前调用所处的位置

调用堆栈,反应的是函数的调用逻辑 

VS的调式技巧你真的掌握了吗?_第20张图片

查看汇编信息

在调试开始之后,有两种方式转到汇编:

1.右击鼠标,选择【转到反汇编】 2.选择【调试窗口】,选择【转到反汇编】

VS的调式技巧你真的掌握了吗?_第21张图片

VS的调式技巧你真的掌握了吗?_第22张图片汇编代码 

VS的调式技巧你真的掌握了吗?_第23张图片

查看寄存器信息

调试开始之后,可以查看当前运行环境的寄存器的使用信息。

VS的调式技巧你真的掌握了吗?_第24张图片

4.多多动手,尝试调试,才有进步

  • 一定要熟练掌握调试技巧
  • 熟悉编译环境和快捷键的使用,提高写代码和调试的效率
  • 以上所讲都是简单的调试,后面会有复杂的调试场景:多线程程序调试等等
  • 初学者80%可能在写代码,20%迷信调试。但是一个程序员可能20%在写程序,80%在调试。

✔✔✔✔✔最后,感谢大家的阅读,若有错误和不足,欢迎指正!

下篇博文我们介绍一些实例和总结错误。

代码------→【唐棣棣 (TSQXG) - Gitee.com】

联系------→【邮箱:[email protected]

你可能感兴趣的:(c语言,开发语言)