原文链接:
Dev C++ 调试功能详细总结https://mp.weixin.qq.com/s/H9VwLNcJ0tY3j3265R0_7Q
大家好,我是CodeAllen(康哥),今天是2023年2月25日,继上一篇介绍了我在Windows端经常用来验证代码的工具Dev C++的基本使用后,今天主要介绍下这个软件的调试功能。
Dev C++安装及使用教程Dev C++安装及使用教程https://mp.weixin.qq.com/s?__biz=MzIwMzkzMzI0OA==&mid=2247486574&idx=1&sn=c66297c4097eca29dc62195773687c45&chksm=96c69f41a1b11657d44692ad5323f6546d49c0dd8e116ca7c8f7dcf397a86864646c592daf4a&scene=21#wechat_redirect
正文:
对于编程学习,可以说调试能力是最重要的技能,没有之一!尤其是C/C++/Linux开发,有相当部分时间都会花在调试上,对于这部分后续还会有更加系统的总结。所谓调试程序,就是控制编译器一行一行地执行代码,过程中可以清楚看到每个变量值的变化情况、函数的调用过程等,进而发现程序中隐藏的错误或者低效的代码。
首先先确认下你的Dev C++调试配置是否正常,有些很常见的问题提前确认下。
1.工具栏中,选择编译选项
2.开启产生调试信息,这个不开会导致无法进入调试模式
3.error-begin No source file named xxx的错误解决有些同学可能调试的时候会遇到,如果没有可以跳过,方法是依次添加下边的配置
-g3
-static-libstdc++ -static-libgcc -g3
gcc.exe -D__DEBUG__
g++.exe -D__DEBUG__
4.正式开始调试,以下边的代码为例子,有电脑的同学可以直接实践下
1#include <stdio.h>
2
3int main() {
4 int n, cnt = 0;
5
6 scanf("%d", &n);
7 for(int j = 0; j < n; j ++) {
8 cnt = cnt + 1;
9 }
10 printf("%d", cnt);
11
12 return 0;
13}
添加断点,这是调试功能的核心,下边是几个步骤:
1.左键添加断点,主要是在比较容易出错,或者有怀疑点的位置
2.添加变量查看,可以实时看到代码中变量的值,非常的直观
3.点击②后,会有③窗口,添加代码中变量名即可
4.输入回车后,在左侧④调试窗口就会出现变量的实时值
点击调试或者按F5启动调试功能,会出现黑色的控制台窗口
此时根据代码,代码会走到第六行scanf等待你的键盘输入
这里我们输入5回车
断点行会变为蓝色,意味着此时代码运行到第8行并停止
左侧变量n由于执存储了键盘的输入变为了5,cnt由于还没有执行仍为0
点击下一步,代码会继续执行一行,根据逻辑会运行到for循环入口,cnt由于执行了一次变为了1,而n由于没有操作所以还是5
另外几个调试功能的作用(都可以动手实践下):
-
下一步:控制编译器向下执行一行语句;
-
单步进入:功能和“下一步”按钮类似,不同之处在于,当程序中调用某个自定义的函数时,此按钮可以进入到函数内部,继续调试函数内部的代码,而 “下一步” 按钮不会;
-
跳过:继续执行程序,遇到下一个断点暂停执行;
-
停止执行:停止调试程序。
当最后执行完for循环,printf函数会输出结果5到控制台,左侧cnt值也增长到了5
这就是一次相对比较简单的调试了,大家可以亲自动手实践下,可能会到各种奇怪的问题,都非常正常,开发本就是解决问题的一个过程,这个调试虽然简单,但是基本的原理就是这样了,对于很多项目中都可以用到。