C开发工具(codeblocks)调试(Debug)
by ◕‿◕ Echo 戴帽子的鹿 ° (http://blog.csdn.net/echo_gaoguichun)
工具:codeblocks-16.01
1、安装
注:记得选择带有编译器的安装包,不然需要自己下载编译器搭建环境比较麻烦
2、建立一个项目
- !!!调试是建立在项目的基础上
项目建立方式有两种:
- file –> new –> project
- create a new project
选择 Console application –> Go
Next
选择C
填写:项目名+存储路径
注:路径中不要包含中文,否则断点调试时会出现问题
接下来 Next –> Finish 就 OK 了
3、编写程序
在 Managment 管理窗口中选择 Projects,点击项目名(我的项目是Test1)前的 + 号,就可以看见项目架构,点击 main.c 即可编写程序。
// 以(求两个正整数的最大公约数)这个小程序为例
#include <stdio.h>
int Gcd(int,int);
int main(void){
int a = 1,b = 1,gcd = 1;
do{
scanf("%d %d",&a,&b);
}while(a <=0 || b <= 0);
gcd = Gcd(a,b);
printf("The gcd of %d and %d is %d .\n",a,b,gcd);
return 0;
}
int Gcd(int a,int b){
int r = 1;
do{
r = a % b;
a = b;
b =r;
}while(r);
return a;
}
4、调试程序
基本调试术语:
设置/取消断点:快捷键F5,或者点击“Debug”下拉框中的“Toggle breakpoint”
开始调试/执行到下一断点(Debug/continue):快捷键F8,或者点击“Debug”下拉框中的“Start/Continue”
- 单步调试(Next line):快捷键F7,或者点击“Debug”下拉框中的”Next line”
- 跳入函数(Step into): 快捷键Shift+F7,或者点击“Debug”下拉框中的“Step into”
- 跳出函数(Step out):快捷键Ctrl+F7,或者点击“Debug”下拉框中的“Step out”
- 运行至断点处(Run to cursor):快捷键F7,或者点击“Debug”下拉框中的”Run to cursor”
- 结束调试(Stop debugger):快捷键Shift+F8,或者点击“Debug”下拉框中的“Stop debugger”
-
准备工作
检查 Build target 是否为 Debug 模式
打开监视窗口:Debug –> Debugging windows –> Watches
也可以通过快捷工具打开,如下图所示:
-
设置断点
最简单直接的方式是在你想设置断点的那一行的行数右侧的浅灰色区域单击鼠标左键即可。设置完断点之后的效果图是:
3 开始调试
a. 可以利用快捷方式工具,也可以从 DeBug 菜单栏进入;
b. 断点处的三角形表示运行至当前,但该语句尚未被运行,从Watches 窗口中可以看出,gcd仍是初始值 1,而变量a与b被赋值成功。(1) Next line
Gcd函数执行完的值将赋值给gcd变量,可从Watches 窗口中看到:
(2) Step into
进入函数执行,同理 Step out 表示跳出函数
(3) 结果
剩下的功能自己摸索呀(自己动手,丰衣足食)。
5、另一种调试方式:
在变量产生新的赋值的时候将其输出,察看是否为自己想要的结果。
在编写代码的过程中,学会看错误信息与学会调试是并重的,精通一个开发工具的调试,其他的工具也就相应的能举一反三了,祝大家早日成为代码大神!
推荐阅读
-
C开发工具(codeblocks)调试(Debug)
-
C语言学习笔记—code:blocks工具debug调试异常
-
C# Debugger.IsAttached 调试启动浏览器 VS if DEBUG 启动调试内容
-
Win7下C/C++跨平台开发工具IDE的安装之CodeBlocks
-
【开发工具】【i2c-tools】I2C总线调试工具(i2c-tools)的安装与使用
-
C++debug调试出现heap corruption detected: after normal block 可能的原因
-
C语言学习笔记—code:blocks工具debug调试异常
-
C# Debugger.IsAttached 调试启动浏览器 VS if DEBUG 启动调试内容
-
Win7下C/C++跨平台开发工具IDE的安装之CodeBlocks