C语言简单的单步调试

C语言中的单步跟踪调试

单步调试是指程序开发中,为了找到程序的bug,通常采用的一种调试手段,一步一步跟踪程序执行的流程,根据变量的值,找到错误的原因。

下面以一个简单的小程序为例,这里的程序必须是在项目下,单个文件不能调试,会直接编译执行。
程序是利用函数max()实现找到两个变量中较大的那一个变量,这里简单起见,a,b的值都是给定的。

#include <stdio.h>
int max(int x,int y) {
    
    
	int temp;
	temp = x>y?x:y;
	/*判断形式参数x和y的大小,并赋值给temp,随后带出函数体*/
	return temp;
}
int main() {
    
    
	int a,b,result;
	a=3;
	b=4;
	result = max(a,b);
	/* 将记录 a 原始值的变量 temp,赋值给 b,实现 a 向 b 转换 */
	printf("%d\n",result);
	return 0;
}
1.这里在程序的main()函数中地行序号11那里单机鼠标打出了一个断点,进行单步调试

在这里插入图片描述

2.点击下面有一个小虫子的按键,选择里面的watches,可以输入需要检查的变量值的变化情况,至于这里为什么叫它小虫子,大家也可以去查查看其中的故事。

在这里插入图片描述
选中里面的watches,在里面可以手动输入变量名称,用于显示,我这里输入了a,b,temp还有result,下面看看调试过程中发生了什么。
在这里插入图片描述
在这里插入图片描述

3.点击这里的红色三角形开始调试(这里会弹出黑框框,不用管它)

在这里插入图片描述
这时注意观察之前定义的所有变量在watches小窗口中都有了一些值,这些值都是之前的旧值,还没有在这个程序中更新。同时在程序中有了一个黄色的小标识,用于显示当前程序已经执行在什么位置了。
在这里插入图片描述
在这里插入图片描述

4.这里先介绍一下这几个常用的功能键:①是用于开始调试;②是用于逐行执行,也就是黄色的小标识会跑到下一行;③是用于进入函数体,如果直接逐行执行则不会进入到其他函数中;④和③相反,从函数体中退出来,回到main函数继续执行。其他按键自己有兴趣可以去查查资料,这里就不讲了,①旁边的那个在多行调试中会用到。

在这里插入图片描述

5.下面先单击二号按键逐行调试,注意观察变量值的变化,当执行到result = max(a,b);这里时,可以看见a,b的值已经显示出来了

在这里插入图片描述

6.下面单击三号按键,进入到max函数里面看看,随着在max函数里面的单步调试,最后可以发现temp最后将最大的值:4,成功地带出了函数体送给了main函数地result变量。

在这里插入图片描述

7.最后执行打印语句,就可以在黑框框里面看见输出显示4了。

一般都是在程序编译的时候没有报错,结果执行却发生了意想不到的问题,这个时候就可以使用调试程序,找到程序究竟在什么位置出现了问题。会调试程序找到错误所在也是一种非常重要的编程技能哦!

猜你喜欢

转载自blog.csdn.net/TTTSEP9TH2244/article/details/115733669
今日推荐