当前位置: 首页 > news >正文

关于vs调试的一些基本技巧方法,建议新手学习

文章目录

  • 1.Debug 和 Release
  • 2.VS的调试快捷键
  • 3.对程序的监视和内存观察
    • 3.1监视
    • 3.2内存
  • 4.编程常见错误归类
    • 4.1编译型错误
    • 4.2链接型错误
    • 4.3运行时错误

1.Debug 和 Release

在这里插入图片描述

在我们使用的编译器 vs 中,这个位置有两个选项,分别为DebugRelease,它们有什么作用呢?

Debug:Debug通常称为调试版本它包含调试信息,并且不作任何优化,便于程序员调试程序;
程序员在写代码的时候,需要经常性的调试代码,就将这⾥设置为 debug ,这样编译产⽣的是
debug 版本的可执⾏程序,其中包含调试信息,是可以直接调试的。所以我们每次开始写代码的时候一般都是为Debug模式。

Release:Release 称为发布版本它往往是进⾏了各种优化,使得程序在代码大小和运⾏速度上都是最优的,以便用户很好地使用。当程序员写完代码,测试再对程序进⾏测试,直到程序的质量符合交付客户使用的标准,这个时候就会设置为 release ,编译产⽣的就是 release 版本的可执⾏程序,这个版本是用户使用的,⽆需包含调试信息等。

我们在编译器写下以下代码,并分别在Debug和Release条件下运行一下,然后再看看与之相对于的文件。
在这里插入图片描述
Debug条件下:
在这里插入图片描述
Release条件下:
在这里插入图片描述


对⽐之下我们可以看到从同⼀段代码,编译生成的可执行⽂件的大小,release版本明显要小,而debug版本明显大,这就是两个版本有无进行优化的区别。

2.VS的调试快捷键

首先,我们想进行调试的话,编译器必须是Debug的模式
在这里插入图片描述
以下有几个调试常用的快捷键
F9:创建断点和取消断点

断点的作用是可以在程序的任意位置设置断点,打上断点就可以使得程序执行到想要的位置暂定执
行,接下来我们就可以使⽤F10,F11这些快捷键,观察代码的执行细节。
条件断点:满足这个条件,才触发断点

例如下图中的红色圆圈就是断点,该断点对应第6行,启动调式时则可以让程序执行到该位置
在这里插入图片描述

F5:启动调试,经常⽤来直接跳到下⼀个断点处,⼀般是和F9配合使用
即在认为有问题想对该位置进行调式观察的地方打下断点后,F5启动调式就可以对该处进行调试

F10:逐过程,通常⽤来处理⼀个过程,⼀个过程可以是⼀次函数调用,或者是⼀条语句。
比如在遇到函数调用的语句时,不会跳转到函数的内部再执行函数中的每条语句,只直接对函数调用这条语句执行一次

F11:逐语句,就是每次都只执行一条语句,这个快捷键可以使我们的执行逻辑进⼊函数内部,对函数内部的语句一条条的指向。在函数调用的地方,想进⼊函数观察细节,必须使用F11,如果使用F10,直接完成函数调用。

CTRL + F5:开始执行不调试,如果你想让程序直接运行起来而不进行调试就可以直接使用

3.对程序的监视和内存观察

3.1监视

我们如果不调试,直接执行,那么得到的结果就直接是最终结果,而不能观察到某个值在程序中是如何变化的。
所以如果我们想要知道该值在程序中是如何变化的,我们就可以在调试的情况下打开监视窗口

开始调试后,在菜单栏中【调试】->【窗口】->【监视】,打开任意⼀个监视窗⼝,输⼊想要观察的对象就可以了。
在这里插入图片描述
例如:
这里可以看到执行到此处时,a是5
在这里插入图片描述
执行到此处时,a就变成了15
在这里插入图片描述

3.2内存

如果监视窗口看的不够仔细,也可以观察变量在内存中的存储情况,在【调试】->【窗口】->【内存】打开内存窗口:
在这里插入图片描述
我们在调试的条件下,可以通过&来获取某个值的地址,从而查看该值在内存中的情况。

如:
想要知道b的内存情况,就&吧,然后按下回车
在这里插入图片描述
我们就可以找到该值所在地址,并且知道它的内存,存了一个10
在这里插入图片描述
在这里插入图片描述
在打开内存窗口后,要在地址栏输⼊:arr(数组的首元素表示地址),&num,&c,这类地址,就能观察到该地址处的数据。

当然vs中在调式条件下还有许多窗口等,可以自行研究研究

4.编程常见错误归类

4.1编译型错误

编译型错误⼀般都是语法错误,这类错误⼀般看错误信息就能找到⼀些蛛丝马迹的,双击错误信息也能初步的跳转到代码错误的地⽅或者附近。
在这里插入图片描述

4.2链接型错误

看错误提示信息,主要在代码中找到错误信息中的标识符,然后定位问题所在。
⼀般是因为以下原因:
1.标识符名不存在
2.拼写错误
3.头⽂件没包含
4.引用的库不存在
在这里插入图片描述

4.3运行时错误

运行时错误是多种多样的,当遇到这种问题时,我们首先可以读一读代码,找找可能出错的位置,再在这些地方进行调式,逐步排查并且找出错误。

http://www.lryc.cn/news/419226.html

相关文章:

  • ​MySQL——索引(二)创建索引(2)使用 CREATE INDEX 语句在已经存在的表上创建索引
  • 前端HTML总结
  • 【动态规划】647. 回文子串
  • python-约瑟夫环(赛氪OJ)
  • Less 教程:从入门到精通
  • 【VScode】如何在anaconda虚拟环境中打开vscode项目
  • Flink任务提交流程和运行模式
  • 【机器学习】 Sigmoid函数:机器学习中的关键激活函数
  • Vue+Element Plus后台管理主界面搭建实现
  • JAVA—异常
  • 常见八股面试题:Dubbo 和 Spring Cloud Gateway 有什么区别?
  • k8s分布式存储-ceph
  • Redis cluster集群部署
  • Java泛型的理解
  • Linux 照片图像编辑器
  • 【51单片机仿真】基于51单片机设计的智能六位密码锁(匿*输入/密码修改/警示/保存/恢复/初始密码)源码仿真设计文档演示视频——文末资料下载
  • 【Vue3】组件通信之mitt
  • 状态压缩动态规划——状压dp
  • 【算法】最短路径算法思路小结
  • zabbix7.0TLS-05-快速入门-触发器
  • vue关于双向数据绑定的骚操作
  • 基于Jeecgboot3.6.3的vue3版本的流程中仿钉钉流程的鼠标拖动功能支持
  • Docker Compse单机编排
  • “AI+Security”系列第2期(一):对抗!大模型自身安全的攻防博弈
  • Python Static Typing: 提升代码可靠性与可读性的使用技巧
  • Datawhale多模态赛事(1)
  • 云手机在海外社交媒体运营中的作用
  • Ubuntu怎么进入救援模式或单用户模式
  • 学习鸿蒙-构建私有仓储
  • 经验是负债,学习是资产