详解C语言六——如何调试你的C语言代码(Visual Studio 2019及以上版本)

简介: 详解C语言六——如何调试你的C语言代码(Visual Studio 2019及以上版本)

前言


会写代码的同时也要会调试自己的代码,当代码出现错误时要想到去尝试调试一下代码,调试起来看到底哪里出了问题。这篇文章就简单讲解一下如何去调试代码。


一、如何通俗的理解“调试”这个词语的意思?


简单来说,调试就是修改代码中语法错误和逻辑错误的过程。


二、Debug版本和Release版本的讲解与区别


我们首先打开编译器(以vs2019为例)。


我们可以看到这里有两个选项,分别是Debug和Release。

Debug版本:是调试版本,便于程序员调试程序。

Release版本: 称为发布版本,代码大小和运行速度上都是最优的,以便用户很好地使用。

下面简单解释一下两个版本的区别。

我们首先让代码在这个两个版本下运行后,打开文件的路径来对比看一下。


可以明显看到,生成的.exe文件大小明显不一样,而且Debug版本下的文件大小明显要大于Release版本的。所以Release版本运行速度上是最优的,以便用户很好地使用。

所以,我们平时写代码为了方便调试是要用Debug版本的,当我们写完并调试完代码,把代码发给用户的时候,就给用户发Release版本的。

(其实他们两个版本之间还有些差距,我们这里先学习这些就可以了)


三丶调试常用的快捷键


F9

F9的作用是创造和取消断点,断点的作用是可以让程序在自己像要的地方停下来,比如我想调试第100行代码,但是代码是从第1行开始调试的,我就可以在第100行设置断点,让程序开始调试后直接跳到第100行,避免了一行一行调试(太麻烦)。

举例:

第五行红色的圆圈就是断点。

这与样我们开始调试后就直接跳到第五行了。避免了一行一行的麻烦。


F5

开始调试的快捷键,如果你的代码没问题,屏幕就会一闪而过,非常快。

它可以直接跳到下一个断点处,所以经常与F9连用。两个键位配合非常好用。这个可以自己尝试一下。


F10

逐个过程开始调试,这个过程可能是一条语句,也可能是一个函数。(但F10无法进入到函数内部调试)


F11

逐语句开始调试,就是每次都执行一条语句。(但是这个快捷键可以使我们调试进入函数内部。)


Ctrl + F5

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


其实这些快捷键在调试窗口都有显示。

我们自己要多训练调试自己的代码。


四丶调试时如何查看程序中的一些信息(如变量当前的值)


我们在调试窗口可以看到如下的几个选项

注意:一定是代码开始调试后才能观察到这些选项。

下面我们一起学习一下比较常用的几个。

1.我们来看这个监视窗口

我们可以在这个里面输入我们想要观察的值,如变量等,随着调试过程,这些值也会相应跟着改变。

2.监视下面那个自动窗口其实就是我们不用输入值了而已,它会自动根据代码的调试来显示出相应的值,但这个自动窗口在代码比较多时不太方便,我们不经常用。

3.内存

还有内存窗口,我们可以通过这个窗口来看当前变量的地址。


在上方输入&+变量名,下方就会显示出地址。

反汇编和寄存器目前来说我们不常用,这里就先不学了。


总结


本篇文章简单学习了如何去调试自己的代码,这提高了我们自己分析错误代码的能力。

本篇文章内容结束,感谢大家观看。如果意见或建议,可以在评论区留言,您的点赞是我更新的动力。我们下篇文章再见。

目录
相关文章
|
2月前
|
存储 安全 数据管理
C语言之考勤模拟系统平台(千行代码)
C语言之考勤模拟系统平台(千行代码)
60 4
|
1月前
|
存储 算法 程序员
C 语言递归算法:以简洁代码驾驭复杂逻辑
C语言递归算法简介:通过简洁的代码实现复杂的逻辑处理,递归函数自我调用解决分层问题,高效而优雅。适用于树形结构遍历、数学计算等领域。
|
2月前
|
存储 安全 物联网
C语言物联网开发之设备安全与代码可靠性隐患
物联网设备的C语言代码安全与可靠性至关重要。一是防范代码安全漏洞,包括缓冲区溢出和代码注入风险,通过使用安全函数和严格输入验证来预防。二是提高代码跨平台兼容性,利用`stdint.h`定义统一的数据类型,并通过硬件接口抽象与适配减少平台间的差异,确保程序稳定运行。
|
2月前
|
NoSQL 编译器 C语言
C语言调试是开发中的重要技能,涵盖基本技巧如打印输出、断点调试和单步执行,以及使用GCC、GDB、Visual Studio和Eclipse CDT等工具。
C语言调试是开发中的重要技能,涵盖基本技巧如打印输出、断点调试和单步执行,以及使用GCC、GDB、Visual Studio和Eclipse CDT等工具。高级技巧包括内存检查、性能分析和符号调试。通过实践案例学习如何有效定位和解决问题,同时注意保持耐心、合理利用工具、记录过程并避免过度调试,以提高编程能力和开发效率。
53 1
|
2月前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
65 1
|
2月前
|
存储 算法 C语言
用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容
本文探讨了用C语言开发游戏的实践过程,包括选择游戏类型、设计游戏框架、实现图形界面、游戏逻辑、调整游戏难度、添加音效音乐、性能优化、测试调试等内容,旨在为开发者提供全面的指导和灵感。
53 2
|
3月前
|
存储 搜索推荐 C语言
深入C语言指针,使代码更加灵活(二)
深入C语言指针,使代码更加灵活(二)
|
3月前
|
存储 程序员 编译器
深入C语言指针,使代码更加灵活(一)
深入C语言指针,使代码更加灵活(一)
|
3月前
|
C语言
深入C语言指针,使代码更加灵活(三)
深入C语言指针,使代码更加灵活(三)
深入C语言指针,使代码更加灵活(三)
|
3月前
|
C语言
C语言调试
C语言调试
24 0