详解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.内存

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


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

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


总结


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

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

目录
相关文章
|
27天前
|
存储 编译器 C语言
【数据结构】C语言实现链队列(附完整运行代码)
【数据结构】C语言实现链队列(附完整运行代码)
36 0
|
27天前
|
存储 算法 程序员
【数据结构】C语言实现顺序表万字详解(附完整运行代码)
【数据结构】C语言实现顺序表万字详解(附完整运行代码)
39 0
|
1月前
|
算法 安全 C语言
使用C语言实现DES算法代码
使用C语言实现DES算法代码
|
1月前
|
C语言
C语言栈的括号匹配的检验讲解及相关代码
C语言栈的括号匹配的检验讲解及相关代码
33 0
|
1月前
|
算法 C语言
【C语言】三子棋游戏实现代码
【C语言】三子棋游戏实现代码
【C语言】三子棋游戏实现代码
|
1月前
|
编译器 C语言
C语言习题----不同版本的差别
C语言习题----不同版本的差别
12 0
|
1月前
|
C语言
C语言-------扫雷游戏的代码实现
C语言-------扫雷游戏的代码实现
27 0
|
1月前
|
C语言
嵌入式C语言中的工具代码助你一臂之力
嵌入式C语言中的工具代码助你一臂之力
21 0
|
1月前
|
C语言 数据安全/隐私保护 C++
嵌入式中如何把C++代码改写成C语言代码
嵌入式中如何把C++代码改写成C语言代码
31 0
|
25天前
|
C语言
C语言使用宏定义实现等级调试输出PRINT_LEVEL
C语言使用宏定义实现等级调试输出PRINT_LEVEL