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

调试技巧(vs2022 C语言)

调试之前首先要保证我们的脑袋是清晰的,我们调试的过程主要是看代码有没有按照我们的想法去运行

调试最常使用的几个快捷键

F5

启动调试,经常用来直接跳到下一个断点处(F5通常和F9配合使用,打了断点按F5程序可以直接运行到断点处,这样提高了调试效率)

F9

创建断点和取消断点(可以在程序的任意位置设置断点,这样可以让程序在随意的位置停止执行,继而一步步执行下去)

按F5后直接运行到17行(这样就不用手动让for循环一次次走完了)

(可以在调试框监视你想看的变量)

中间带加号的是条件断点,可以右击鼠标进行设置条件,只有满足条件才运行到这个断点

F10

逐过程,通常用来处理一个过程,这个过程可以是一次函数调用或者是一条语句。

F11

逐语句,即每次执行一条语句,但是这个快捷键可以使我们的执行逻辑进入函数的内部(这是最常用的)

F10和F11有区别,F11可以进到Add函数内部(但是现在的编译器一般不支持调试库函数),F10不会,所以F11更加细致

Ctrl+F5

直接执行不调试

自动窗口会自动把程序的变量信息显示

监视窗口可以打开多个

a,4可以看到4个元素

a,10可以看见10个元素

还可以查看内存

调试可以看函数堆栈,反汇编,寄存器等

调试练习:

这段代码是死循环,通过调试的方法发现问题

已经越界访问了,但是可以改arr[10]的值,hehe也正常打印

但是改完arr[12]后,i又会变回0,这样子循环往复,变成死循环

i在变的时候arr[12]也在变,并且值变化相同,说明他们在同一块空间上

vs arr和i之间是两个空间,但是不同的编译器可能不同

用assert要包含头文件

实例理解:

要学会写优秀的代码

str只是提供元素的内容,不需要被改变,用const修饰能让代码更加健壮

避免传过来的是空指针可以加上assert进行判断

链接性错误可以通过查找(Ctrl+F)发现错误

运行时错误是编译和链接都没问题,但是结果有问题或者其他情况,这个要通过调试解决问题

http://www.xdnf.cn/news/1322281.html

相关文章:

  • 【速通】深度学习模型调试系统化方法论:从问题定位到性能优化
  • 剧本杀小程序系统开发:保障游戏公平,营造健康娱乐环境
  • 蔬菜批发小程序:生产商的数字化转型利器——仙盟创梦IDE
  • 云计算-云上实例部署 RocketChat:Mongodb、主从数据库、Node 环境配置指南
  • 【人工智能】2025年AI代理失控危机:构建安全壁垒,守护智能未来
  • Python 面向对象三大特性详解(与 C++ 对比)
  • 【OpenAI】今日话题: GPT-4o-Audio-Preview 多模态语音交互模型介绍+API的使用教程!
  • 【verge3d】如何在项目里调用接口
  • ⭐CVPR2025 RigGS:从 2D 视频到可编辑 3D 关节物体的建模新范式
  • 【2025CVPR-目标检测方向】RaCFormer:通过基于查询的雷达-相机融合实现高质量的 3D 目标检测
  • BeeWorks 私有化会议系统:筑牢企业会议安全防线,赋能高效协同
  • 高并发网络编程实战:深入理解epoll客户端的事件驱动模型
  • OpenCV---特征检测算法(ORB,Oriented FAST and Rotated BRIEF)
  • css word-pass
  • 【LeetCode 热题 100】198. 打家劫舍——(解法二)自底向上
  • Linux磁盘阵列
  • ChatGPT-5 对教育行业的影响与案例研究
  • OpenAL技术详解:跨平台3D音频API的设计与实践
  • C++最小生成树
  • 手写MyBatis第24弹:从单条插入到批量处理:MyBatis性能优化的关键技术
  • 手机视频怎么提取音频?3步转成MP3,超简单!
  • 决策树的笔记
  • 决策树学习报告
  • MCP协议
  • 世界模型之自动驾驶
  • 决策树:机器学习中的直观分类与回归工具
  • 【深度学习基础】PyTorch Tensor生成方式及复制方法详解
  • <数据集>遥感飞机识别数据集<目标检测>
  • 基于深度学习的车牌检测识别系统:YOLOv5实现高精度车牌定位与识别
  • Android Coil3视频封面抽取封面帧存Disk缓存,Kotlin(2)