Dev C++调试基本用法

经过几天的学习,对最基本的题目与解法进行了一定程度的了解,每天补题补得晕头转向,也没有时间总结,于是在结束时候对几天学习内容进行一个基本和大概的总结。估计会持续写好几天,逃~~~。

首先最基本的先掌握下dev c++的基本调试方法。

##调试简介
首先,什么是调试?调试(也叫debug)是根据程序中数据的变化寻找错误的准确位置的方法。尤其是,编译器只能帮你找到不符合语法的错误,不能帮助你发现你的一些与你思路不符的行为,比如我经常在for循环读入数组的时候,把读入的循环i总是写成MAXN(数组的最大元素),导致一直把值保存在最后之后的位置。(有可能RE,反正数组内的元素始终都是初始化元素未改变)因此,明白调试的方法是解决这类错误的必然要求。

##例误

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 #include<iostream>
 5 #include<string>
 6 #include<vector>
 7 #include<stack>
 8 #include<bitset>
 9 #include<cstdlib>
10 #include<cmath>
11 #include<set>
12 #include<list>
13 #include<deque>
14 #include<map>
15 #include<queue>
16 using namespace std;
17 typedef long long ll;
18 const double PI = acos(-1.0);
19 const double eps = 1e-6;
20 
21 
22 int main(void){
23     int a; float b; double c;
24     double A,B,C;
25     scanf("%d",&a);
26     scanf("%f",&b);
27     scanf("%f",&c);
28     A = a+b;
29     B = b+c;
30     C = c+a;
31     printf("A:%f\n",A);
32     printf("B:%f\n",B);
33     printf("C:%f\n",C);
34     return 0;
35 
36 }

本代码中的错误出现在第27行,double类型的变量是不能用%f而应用%lf读入,当然输出还是%f。所以出现如下的结果。(输入:1  1.5  2.5)

理应当出现的结果应该是:

A:2.500000

B:4.000000

C:3.500000

所以出现问题,那么需要调试。

##起点与终点
我们设计的程序也许相当复杂,所以我们不可能每次都从头到尾对程序进行调试,所以首先要设置起点和终点。

 

初步首先判断认为错误出现在第25行至33行,点击后成功设置好起止断点。开始调试后,点击下一步,程序逐行运行。

##设置监控对象 

 

然后,由于是中间值可能出现问题,我们想要观测中间值,于是我们要设置监控对象,观察监控对象的变化。

点击添加查看

 

输入要监测的变量的名字

 

之后显示在左侧窗体:

一边输入值,一边点击下一步:

 

输入b,执行后的结果如下图显示:

由此可见,b的读入不存在问题,继续进行下一步:

 

之后的结果,观察下:

 

哦,c仍然是未初始化的随机结果,证明在这步中,c未完成读入,仔细查看下27行语句,找到了问题所在。

##结束

 

单击“停止执行”,结束调试的全部过程

 

##总结

以上就是调试过程的基本全过程了,通过调试,可以比较方便快速的查找到问题的所在,通过监测对象的选取与观察,一旦某步出现与预期不符的结果,很清楚的了解到问题的所在。

 

posted @ 2018-02-01 15:58  caomp  阅读(2495)  评论(0)    收藏  举报