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

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



大家中秋和国庆快乐哦🆗,真的耍的太开心了,今天我们抽出一点点时间来讲解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】

目录
相关文章
|
6月前
|
编译器 C语言 C++
VS实用调式技巧
VS实用调式技巧
52 0
|
存储 监控 算法
代码调试技巧
代码调试技巧
|
NoSQL
vscode调式错误
vscode调式错误
141 0
|
JSON Java Android开发
每次调试打印日志都很头痛
每次调试打印日志都很头痛
121 0
|
C++
VS中断点调试的功能
VS中断点调试的功能
97 0
|
C++
C++程序调试详解(包括打断点 单步调试 数据断点...)
C++程序调试详解(包括打断点 单步调试 数据断点...)
362 0
C++程序调试详解(包括打断点 单步调试 数据断点...)
|
PHP
什么?你还不会断点调试代码
什么?你还不会断点调试代码
110 0
什么?你还不会断点调试代码
|
PHP
什么?你还不会断点调试代码(2)
什么?你还不会断点调试代码
103 0
什么?你还不会断点调试代码(2)
|
编译器 C++
C/C++ - Codeblcoks 调试断点不停解决办法【绝对有效】
C/C++ - Codeblcoks 调试断点不停解决办法【绝对有效】
444 0
程序的灵魂-调试 (附调试程序快捷键总结)
程序的灵魂-调试 (附调试程序快捷键总结)
217 0
程序的灵魂-调试 (附调试程序快捷键总结)