首先欢迎大家加入科协,然后又在百忙之中很不幸的点开了我这个协会最菜写的CodeBlocks调试教程。虽然我也觉得写得很烂,但还是希望你们能忍着看完,也希望能对你们的C语言学习有所帮助。

调试是C语言的一个重要的功能组成部分,可以用来发现程序出存在的问题,快速定位及解决。同时对于初学者,调试也可以辅助更好的理解程序。在调试中,程序的每一步的执行均是可控的,可以通过单步执行,设置断点等,控制程序的运行节奏,并在每次暂停时,都可以查看当前有效变量的具体值。对于初学者而言,调试中可以很明确的看到程序的执行过程,以及每一步产生的变化,对于初学者,这样直观的体验自然要比读代码更容易理解,而看到现象之后,再回想理论也更容易。事实上,调试最初就是为了解决问题而产生的,调试的英文为debug, 而bug就是程序中存在的问题,debug就是解决掉这些问题。当程序的运行结果与期望不符时,可以通过调试,查看每步的具体执行及结果,因此可以定位出到底是哪个操作或语句与预期的不同,从而快速定位,再针对性分析代码,实现快速解决问题的目的。(我从百度上抄的)引用我们已经工作的老会长林老板的话:不调试=不写中大型项目=不怎么会编程。所以调试在我们学习C语言中是非常重要的!

那接下来就让我们走进神奇的调试吧。

首先,我们根据之前的步骤,已经建立好了一个工程。这里注意,新建工程的保存路径中不能存在汉字和空格,必须是全英文的!而且建立的必须是一个完整的项目,单个文件无法启动调试器

一般的,我们在工具栏中能够找到调试器

如果不小心把这一行关了的话,可以从view里面重新拉出来

然后让我们先认识一下Debugger工具栏里面的几个按键

  1. Debug/continu:开始调试/执行到下一断点
  2. Next Line:单步调试,执行下一行语句
  3. Step Into:跳转到函数内部执行语句(如果你遇到函数的时候使用NextLine的话好像会直接把函数执行完?我没试过,有兴趣的尝试下?)
  4. Step Out:跳出函数
  5. Stop debugger:结束调试
  6. 调试窗口:主要用于打开变量观察窗Watches

调试前我们要制定好调试程序(如果你是从协会的新生群下载的CodeBlocks就可以忽略这一步了,如果你是自己从网上另外下载的,记得看一下),在Settings里找到Debugger Setting,点开

点击Default,然后设置可执行路径,一般在你的CodeBlocks的下载路径的MinGW文件夹中的bin文件夹里,找到gdb.exe就行了。

调试的准备工作我们都准备好了,现在让我们来开启美好的调试吧。我们以一段计算圆的面积的代码为例。首先我们设置好断点就在选择的那一行行数后面单击下你的小鼠标,就会出来一个红点,就是断点,相当友好方便啊

然后单击工具栏里那个红色的三角形(Debug)。这时候你的DOS命令窗口已经跳出来了,但是因为我们只运行到了double这一行,所以DOS窗口是一片乌漆嘛黑的,但是你看Watcher窗口,这里已经出现了我们定义的三个变量r,s,pi,以及各自的初始值(因为我们还没给他们赋值)

然后我们点击Debugger里面的下一行,光标自动运行到下一行,这时候Watcher窗口pi已经有了值了。这时候黄色的光标已经在请输入半径这一行了,

可是你会发现DOS命令窗口仍然一片乌漆嘛黑啥玩意儿都没有。这是因为光标所在的位置,表示的是这一行前面的语句都编译并运行了,但这一行没有编译运行啊。

然后让我们接着往下跑,遇到了scanf,在Debug的时候,如果遇到要输入数据的语句,必须输入完数据之后才能接下去调试,如果没有输入数据你会发现你的Debugger工具栏,么得用了。。。

你看,Debugger工具栏一片黑了,输入数据之后你就可以继续往下调试了,注意,你输入数据后你的Watcher窗口里面r就有值了

然后我们一路调试下去,最后Watcher里面三个变量的值也是符合我们预期的,说明我们的程序没有问题,可以使用了

以上就是我们整个的调试过程了,希望大家能自己实际操作一下,熟练一下调试的具体步骤和方法。

发表评论