bt365最新网站-bte365娱乐线-bt365官方网站

vs单步调试及断点调试基本介绍(入门版详细图文介绍)

简述:本文面向小萌新介绍visual studio2022下的基本调试技巧(其他主流IDE均相似,仅具体快捷键键位不同) //本文无废话,建议小萌新仔细阅读 /

vs单步调试及断点调试基本介绍(入门版详细图文介绍)

简述:本文面向小萌新介绍visual studio2022下的基本调试技巧(其他主流IDE均相似,仅具体快捷键键位不同)

//本文无废话,建议小萌新仔细阅读

//

//本文无废话,建议小萌新仔细阅读

//

//本文无废话,建议小萌新仔细阅读

//

//注,用win10/win11系统初学c/c++的话建议直接安装vs,省心,初学没必要为难自己

vs2022安装教程https://blog.csdn.net/qq_43444947/article/details/104476963

//

//

1: 断点调试

//作用:可以用来快速定位问题在哪一块,如:正常运行到断点位置后停住,通过窗口输出情况可以判断运行到断点之前的部分是否符合预期

//

//

用法:打断点,在侧栏点击一下,即可生成断点,就是那个红色的点

//

断点的作用: 在调试启动时可以运行到这一步之后停止,

//

使用方法:调试->开始调试

//

//

//

//

断点停住后,

1:可配合单步调试一步步的运行(见后文介绍)

2:也可以恢复运行状态,继续运行程序,直到等待输入,异常或者运行到下一个断点。

//

//

//

//

如上图

停止在断点行

解释:此时有两个断点,停在第一个断点处,前面的运行完,输出hello

//

而下方窗口显示局部变量i的值是468,因为此时停在断点,还没有进入for语句的初始化i为0,所以此时i的值是内存中的值

//

//

而输出框中正常打印的hello代表从程序开始运行到第一个断点的这部分都一切正常-----按预期输出了hello

//

//

而输出框中正常打印的hello代表从程序开始运行到第一个断点的这部分都一切正常-----按预期输出了hello

//

//

而输出框中正常打印的hello代表从程序开始运行到第一个断点的这部分都一切正常-----按预期输出了hello

//

//

(实际中你可以通过多个关键地方打印信息,结合断点来快速定位问题)

//

//

在断点停住的情况下,可以接单步调试(见后面介绍),也可以恢复运行状态(使用方法,vs中是快捷键按f5)

//

//

//vs中的位置------调试->继续,别的IDE也是类似,可能在侧边栏

//此处选择继续运行

//

//

此时,按完f5(vs中是点击继续)(别的IDE找到类似的选项之类),继续执行(或者叫“恢复程序运行状态”)后如图

上图解释:

调试启动后停在第一个断点后,程序停止在那一步,此处选择继续运行,恢复运行状态,此时一切顺利(没有异常等情况,一切顺利运行),直接运行至下一个断点,查看窗口输出

//

//

此时,按照预期输出了hello和3 6 9,然后停在第二个断点

//

//

//意义:此时可以确定程序从第一个断点一直运行到第二个断点都完全符合预期(预期:输出hello和3 6 9)

//

//意义:此时可以确定程序从第一个断点一直运行到第二个断点都完全符合预期(预期:输出hello和3 6 9)

//

//意义:此时可以确定程序从第一个断点一直运行到第二个断点都完全符合预期(预期:输出hello和3 6 9)

//

//

//在实际项目开发中,会调用大量其他模块/底层api。此时可以通过关键地方设置多个断点,然后逐步恢复运行状态来判断哪个模块出现问题。而单步调试可用来在对应范围内去找具体的bug

//

//

//

2:** 单步调试**:

//作用:可以深入某一个模块,某一个函数去一行行执行代码,可以具体的去定位bug在哪一行。

//使用方法:

快捷键f11,(别的IDE也类似),单步调试可以直接按f11,然后从第一行开始逐步运行,

//

//

不过通常用法是在断点调试下接单步。即直接运行到断点那行,再停下来一步一步运行,进而可以仔细检查每一行是否符合预期,

//

//

//如上图,此时是调试启动后,一切顺利的运行到第一个断点后,假设第一个断点到第二个断点中有bug,此时使用单步调试去具体定位bug在哪一行,此时仔细观察这部分代码每一行的运行过程。

//

//

//上图按了一次f11(别的软件类似)(逐语句运行),此时,运行一行,运行for(int i=0;i<3;i++),i初始化为0,值从之前的468变为0

//

//注,下面的窗口也能显示变量的内存地址相关信息,也可以用来定位内存相关的问题

//

//如上图,此时按下第二次f11(逐语句运行,别的IDE类似),此时观察监控窗口

//此时执行完num+=3;

//

//num的值变为3;(符合预期,借助这种方式来定位bug具体在哪行)

//

//

//注:电脑快捷键分软件和系统层快捷键

//本人戴尔G3是通过Esc+fn键切换,不同电脑可能不一样,如果按对应快捷键无效,考虑是否需要切换为软件层面

//

//

//

另,f10是逐过程调试,不会进入函数块(本文就不测了,自己写个函数调用实践一下)。f11逐语句,会进入函数块内部去调试

//

//

//再次强调,单步调试可以检查每一步是否符合预期,比如for循环是否越界,赋值是否正确等,内存分配问题,底层调用是否正确赋值,中间结果是否符合预期,等等各种问题

//

//

补充:如果不小心关闭输出窗口,可以在此处点开即可

//

//注,需要在调试状态(即本身处于断点停住的调试,或者单步状态下)点开 调试->窗口->需要的窗口

//

//

//

总的来说,断点调试用来在整个程序中定位问题属于哪一个模块,而单步调试用来定位问题具体在哪一行

//

//

3:** 调试的意义**:

调试的意义在于检测每一行,每一个函数,每一个模块是否符合自己预期来执行。

//

// 其中断点调试通常通过恢复运行状态(继续执行)来快速定位bug在哪一个大的模块。

//

// 而单步调试一般是在断点调试的状态下,去具体的定位哪一行代码有bug。

//

//更多的调试技巧,如调试条件设置,断点设置,堆栈分析,快照分析等,都需要自己去钻研,万事开头难,祝大家一切顺利

//

//

//

//

//有用的话可以点个赞表示对我的支持鼓励,谢谢大家

//

//有用的话可以点个赞表示对我的支持鼓励,谢谢大家

//

//有用的话可以点个赞表示对我的支持鼓励,谢谢大家

//

//注,后续有问题可以在评论区留言,看到后会更新文章。

//

← 上一篇: 发票专用章上刻的税号是哪里的
下一篇: 【原】这8支青春校园风舞蹈,运动会开幕式表演必备!完整版含队形编排,好看又好学~ →

相关推荐

华为手机怎么清理缓存 华为手机清理软件缓存方法【教程】

华为手机怎么清理缓存 华为手机清理软件缓存方法【教程】

手机使用的时间长之后会有一些负累,为避免手机速度变慢,有必要及时清理,让软件缓存对手机使用不造成影响, 现介绍一下华为手机如何清

2023 年 10 个最佳 Java IDE 和编辑器

2023 年 10 个最佳 Java IDE 和编辑器

集成开发环境或 IDE 是构建软件项目所需的最关键部分之一。它们使开发变得简单高效。 IDE 通过缩短设置时间、加速开发任务、让开发人员了解

客户如何细分管理

客户如何细分管理

客户如何细分管理是企业实现精准营销和提升客户满意度的重要策略。客户分类、需求分析、行为分析、价值评估是细分管理的核心方法。通过

日人氣AV女優「騎乘位秒殺普通人」! 邀她演女女作品嬌喊:老婆

日人氣AV女優「騎乘位秒殺普通人」! 邀她演女女作品嬌喊:老婆

記者劉宛欣/綜合報導 日本AV女帝三上悠亞宣布即將引退後,讓大批老司機相當崩潰。新人後輩層出不窮,其中Miru一出道就獲得「優秀新人女優

深度解析苹果售后服务:用户体验与服务质量对比

深度解析苹果售后服务:用户体验与服务质量对比

在智能手机和电子设备急速发展的今天,用户对品牌的售后服务质量越来越重视。作为全球知名的科技公司,苹果以其高质量的产品和出色的客

黄颡鱼什么时候开口?夜行性鱼类,尤以夏秋季的晚上最好钓!

黄颡鱼什么时候开口?夜行性鱼类,尤以夏秋季的晚上最好钓!

一、鱼种论述 黄颡鱼是名贵淡水经济鱼种,别称黄骨鱼、昂刺鱼、黄辣丁等,在生物分类学上属于鲿科、黄颡鱼属鱼类的统称,全国各地均有分