VS调试技巧

简介: VS调试技巧

本篇文章主要是详细介绍vs中常见的快捷键,以辅助我们更好地debug。

F9:创建断点和取消断点,以辅助我们更好地观察程序运行。

比如在这个程序中,我们认为他在循环以外的内容都没有错误,我们只需要修改最后的内容。这时我们就可以在最后的位置打上断点。

此时我们可以使程序运行起来,然后程序运行到断点的位置会停止,然后我们可以按F11或F10运行程序来观察我们想观察的数据。

但是如果在第10行的位置也按一个F9,程序会不会来到16行呢? 答案是不会,F5的作用是让它来到执行逻辑的下一个断点处。

值得一提的是,还可以对断点进行编辑。右击断点,点击操作:

我们可以对断点进行各种各样的操作,比如让它满足某个条件才执行。

当我们只是想让程序运行起来,我们应该按CTRL+F5。

除了这些快捷键,我们还能查看到VS中还有别的快捷键,所以我们可以来探索探索!

我们可以看一下调试窗口中的一些功能:

在debug x86环境下,我们调试这一个代码:

(关于x86和x64的环境有什么区别,这里再插播一句)

不难看出,这个代码中循环越界访问了,那么为什么打印出来的结果是死循环呢。

通过监视窗口,我们可以观察到arr[12]中初始化为0后,i也初始化为0。再次运行,我们就会发现,随着arr[12]的增大,i的值也在增大,那么,这是为什么呢?

当我们&arr[12]和&i的时候,我们就会发现这两个的值一模一样。当arr[12]快要变成13的时候,arr[i]又将它初始化为0,i永远不可能变成13,这个循环永远不可能停下来,这样的现象使其永远不可能停止下来。

局部变量是习惯性放到栈区上的,先放到高地址,再放入低地址。i先创建,就在高地址上申请了一块空间。数组地址的特点:随着下标的增长,地址是由低向高变化的。

如上图初始化,那么就会使其初始化到i的时候将其初始化为0。

i小于等于11或10都不会覆盖到i。中间不一定都是两个空格。

在数组传参,调试进⼊函数,如何在监视窗⼝观察数组的内容: 数组名,n 的形式。

 

相关文章
|
Java Linux Maven
私有仓库工具Nexus Maven如何部署并实现远程访问管理界面
私有仓库工具Nexus Maven如何部署并实现远程访问管理界面
285 0
|
弹性计算 固态存储 数据可视化
阿里云服务器价格多少钱,阿里云服务器最新购买价格出炉(2023更新)
阿里云服务器分为云服务器ECS和轻量应用服务器,云服务器s6公网带宽可选1M到5M,系统盘40G起可选高效云盘、SSD云盘或ESSD云盘,1核1G配置19.17元3个月、306.72元一年,1核2G优惠价26.46元3个月、423.36元一年,2核4G配置42.66元3个月,2核8G配置58.86元3个月,4核8G 75.06元3个月,8核16G 139.86元3个月,还有4核16G、8核32G多配置可选。不只是云服务器ECS共享型s6实例,ECS计算型c6、通用型g6、内存型r6、云服务器u1、企业级c7/g7/r7系列、轻量应用服务器和GPU云服务器均有活动优惠价。2023年阿里云服务
120 0
|
JavaScript Java 测试技术
Java项目基于ssm+vue.js的农产品质量安全检测网站附带文章和源代码设计说明文档ppt
Java项目基于ssm+vue.js的农产品质量安全检测网站附带文章和源代码设计说明文档ppt
83 0
|
传感器 前端开发 网络虚拟化
电赛中常用的模块电路设计
电赛中常用的模块电路设计
609 0
电赛中常用的模块电路设计
|
机器学习/深度学习 算法
【机器学习算法】2、逻辑回归——从来源说起(一)
【机器学习算法】2、逻辑回归——从来源说起(一)
101 0
OC泛型的使用
在声明类的时候,不确定某种属性或方法类型,在使用这个类的时候才确定,就可以采用泛型 如果没有自定义泛型,默认就是id类型
411 0
|
人工智能 编解码 达摩院
5G加速商用,云通信如何推动企业营销数智化
如何为企业提供更具灵活性、更能满足时代需求的企业通信产品与服务,成为众多云通信服务商需要思考的关键问题。阿里云通信作为企业级云通信服务商,也始终聚焦各行业场景应用的开发,其中“多媒体化”与“服务交互”是企业营销数智化之中两个重要方向。
1633 0
|
Web App开发 测试技术 数据安全/隐私保护
QQ空间 代码秒赞
摘要 环境搭建 驱动 下载 selenium 驱动安装问题集 未发现驱动 firefox驱动错误 模拟登陆 首败 再败 成功 演示 总结 摘要 很久之前就想着要写个脚本,要么去刷12306的票,要么就登QQ空间。
1212 0
|
Android开发 缓存 存储
sd卡文件操作
1. 得到存储设备的目录:/SDCARD(一般情况下)SDPATH=Environment.getExternalStorageDirectory()+"/";2. 判断SD卡上的文件夹是否存在:通过File对象的exists()方法。
700 0
|
1天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1055 0