使用VC++6.0调试C语言代码

第一步:编译

C语言是一种编译型语言,所以我们在进行调试加断点时,不像Python那样可以直接加断点,在VC++6.0中,刚刚写完的代码是无法直接加断点的。
在这里插入图片描述如上图,这时候还未进行编译,能看到工具栏里右面几个按钮都是无法点击的,只有最左边两个编译生成的按钮可以使用。我们要先对这段代码进行编译。
在这里插入图片描述
编译过后,已经生产好了exe文件,这时发现,右边几个按钮已经可以使用了。
补充说明一下几个按钮的功能:
在这里插入图片描述
从左到右依次为:编译、生产、停止生成、生成并执行、调试、增加/删除断点

第二步:开始调试

通过上一步,已经可以开始对代码进行调试了。以下是演示所用的这段代码:

#include<stdio.h>
int main()
{
	int num1 = 5,num2 = 10;
	char ch = 'A';
	int i;
	printf("num1=%d, num2=%d, ch=%c\n",num1,num2,ch);
	for(i = 0;i < 4; i++)
	{
		num1 ++;
		num2 += 2;
	}		
	ch += 5;
	printf("num1=%d, num2=%d, ch=%c\n",num1,num2,ch);
	num1 /= 3;
	num2 %= 5;
	ch += 2;
	printf("num1=%d, num2=%d, ch=%c\n",num1,num2,ch);
	return 0;
}

这里将断点加在了这两个位置
在这里插入图片描述
然后点击调试按钮,或按快捷键F5。
第一次进行调试时,会弹出一个调试工具栏
在这里插入图片描述
关于里面各个按键功能不一一介绍,可自行尝试。如果关掉了这个窗口,可以通过鼠标右键工具栏,点击调试再找出来。
在这里插入图片描述
好了,接下来一步步开始调试。按下快捷键F10,可以一句一句向下走。
在这里插入图片描述这里我们从第一个断点走到了第一个printf,下面会显示出已经用到的变量和变量值。
在执行到这一句时,两个整型变量num1,num2已经进行过初始化,而i未进行初始化,同时是一个局部变量,所以显示的值是随机分配给的一个值。字符变量ch的值中,A是它所代表的字符,65是这个字符的ASC码值。printf在stdio.h这个头文件里被定义成的是有返回值的,同样scanf也是,所以在调试时我们会看到它的返回值。(在一些开发环境中,如VS,使用printf或scanf都会报waring,提示忽略了它们的返回值,也是这个原因)
那么我们继续向下走。
在这里插入图片描述这里是进入到了一个for循环,在按F9逐句调试时,会重复走{}括起来的这几行。如果循环次数过多,想直接结束对这个for的调试,可以按下shift+F11,也是直接跳出对函数调试的快捷键。
最后调试结束,按下F5,就可以终止调试,回到开发状态了。

可能会出现的问题

在调试执行下一步中,按下F9或点击调试工具栏里的按钮,有的电脑会出现这个提示。
在这里插入图片描述原因是VC++和Win7及以后版本的兼容性有问题,毕竟其不是同一时代的产品。提示需要管理员的权限,其解决办法如下:首先选择VC++的快捷方式,右键单击,选择“以管理员身份运行”,再在菜单里选择“文件”打开你要调试的程序即可进行调试。

发布了11 篇原创文章 · 获赞 13 · 访问量 2869

猜你喜欢

转载自blog.csdn.net/lhx0525/article/details/103697230