zoukankan      html  css  js  c++  java
  • Dev-c++调试

    测试代码00:

    #include<stdio.h>
    
    int main()
    {
    	int a = 0, b = 0;
    	scanf("%d %d", &a, &b);
    	int c = 0;
    	c = a + b;
    	return 0;	
    } 
    

    一、
    一号图:

    我在c = a+b;这行前面设置一个断点,如何设置断点呢?就只需要把你的鼠标放在行号8上,点击一下8,你就发现8上面多了一个红色的小勾,并且当先行也会变红,这样你就成功设置了一个断点
    二号图:

    然后我按下F9,把这个程序编译一下,记住必须编译之后才能进行调试
    三号图:

    然后点击调试
    四号图:

    点击添加查看
    五号图:

    比如我要查看变量c的值
    六号图:

    你发现左边的框里出现了变量c
    七号图:

    现在点击调试
    八号图:

    现在点击调试
    九号图:

    接下来你输入两个整数,中间用空格分隔开,并且按下回车键
    十号图:

    你再回到我们的devcpp,点击下一步
    十一号图:

    看到了吧,现在机器执行完了第8行,停留在了第9行前面,左边的c的值也变为了13,这就是调试的好处,你可以一行一行执行,并且每次执行完,你左边的框里添加的要查看的变量的值就会跟着改变(当然,你要是没有对他的值进行改变,他就不变)
    十二号图:

    后面没有关键性的步骤,直接按跳过即可,那么我们的调试也就完成了

    二、
    我们还可以用调试来证明另一件事

    十三号图:

    假如我没有对变量a,b,c初始化为0,就像图中的情况,我只是定义了a,b,c三个变量,并没有对他们进行赋值,那么我们一会儿在程序运行过程中,他们的值会怎么样呢?

    十四号图:

    首先,我们在第八行前面设置一个break(断点),如何设置断点呢?你就在那个8那里点一下就行

    十五号图:

    我们此时还是按下F9对我们的程序进行一个编译

    十六号图:

    好的,我们没有warning(警告),也没有error(错误),非常nice

    十七号图:

    接下来我们还是点击我们的调试

    十八,十九,二十号图:

    我们点击添加查看,分别输入a,b,c

    二十一号图:

    然后产生上图的效果

    二十二号图:

    接下来点击调试

    二十三号图:

    没错又是我们的黑哥

    二十四号图:

    然后我们输入两个整数,比如5和6,中间空格隔开,然后回车
    (我这里不知道为啥,好像得按两下回车才行,不知道是不是我这个代码输入那块是不是有点小bug)

    二十五号图:

    好,现在就出现了我们想看的东西,
    1.左边的查看栏分别显示出了a,b,c三个变量的值,a和b很好理解,就是5和6,但是关键是c的值,你发现c的值为0,这说明什么?先往下看
    2.我们发现我们的机器现在执行完了第7行,还未执行第8行
    3.我现在来解释c为什么为0,我刚才说了机器已经执行完了第7行,就是说我们已经定义了整型变量c,但是并没有给这个变量c赋值(也就是初始化),那你想想c的值是不是一个任意的值?没错,c就应该是一个任意值,但是为什么这里c的值为0呢?那是因为devcpp把这个值赋赋为0了,如果说你用的是别的IDE(就是说用的环境不同),比如说是vscode,那这个c的值会是0还是一个任意的值呢?这里我可以告诉你,至少在win系统下的vscode里c的值还是0,因为我试过。那你又要问,那如果是在别的IDE下呢?
    那我就不能这么确切的告诉你了,因为我没试过。
    小结一下,这个没有从初始化的变量c的值是不确定的,在不同的电脑中,不同的IDE下,c的值是不确定的,只不过devcpp和vscode这两款IDE帮你把他初始化为0了,所以我这里建议以后若是需要初始化一个变量的值为0,不要等着编辑器去帮你初始化为0,最好自己手动给变量初始化为0

    二十六号图:

    当我们点击完下一步时,c的值就变为了11,没毛病。
    接下来点击跳过,那么我们的调试就完成了。

    总结一下,
    第一,调试就是可以帮助我们在程序编译后或运行后出现错误,帮助我们查看变量的值的一个功能,当然这个过程你也完全可以手动转化为代码,人工调试,今天在这我就不说这种方法了,你也可以自己尝试着这么干
    第二,定义变量时,你若需要让一个变量的值为0,请用你高贵的双手手动把=0加在后面,不要等着你的IDE帮你完成这项工作

    ———————————————————————————————————————————————————————————————— 转载麻烦附上本文链接和本声明,感谢! 博主<叶家星>博客园链接如下:https://www.cnblogs.com/yejiaxing-01/
  • 相关阅读:
    LLVM生成中间码以及汇编代码
    汇编知识
    delphi 连接 c++ builder 32 生成obj文件
    新知识
    Java的Guid生成
    sql:一对多【转载】
    关于使用js完成购物车计算时的一些问题。
    mysql多条件查询,当某个条件为空时忽略该条件,所有条件为空时查询全部
    转载:获取用户的真实ip地址
    ssh 报错hibernate java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to XXX
  • 原文地址:https://www.cnblogs.com/yejiaxing-01/p/12798049.html
Copyright © 2011-2022 走看看