如 何 在
Visual C++ 6.0 环 境 下 进 行 简 单 的 C 语 言 程 序 调
试
文章简介
本文主要介绍如何在
VC6.0 环境下进行简单的 C 语言程序调试。作为阅读本
文的基础,读者应该熟悉如何在
VC6.0 环境下建立 Win32 Console Application
(Win32 控制台程序) 类型的工程。请结合文章给出的案例,按照文档中的描述一
步一步做。如果只是阅读,则收效甚微。在做完文章给出的案例后,你应该尝试
着将文章中介绍的知识和技巧应用到你实际开发的程序中。如果阅读完一遍后,
对调试基本概念还是不了解,建议你再多看几遍。
在介绍如何进行
C 语言程序调试( debugging)前,首先介绍程序调试的概念。
调试
(debug)一词在计算机领域最早被提及,源于美国人 Admiral Grace Hopper(葛
丽丝
·霍普、COBOL 语言发明者、电脑科学家) 。二十世纪四十年代(1940s) Grace
Hopper 在哈佛大学为名为马克 2 号(Mark II) 的计算机( 由 IBM 公司制造) 编写程序
时,有一次在排除计算机故障时,发现一只飞蛾被夹在触点原件之间,导致计算
机无法运行。于是她诙谐的把计算机故障称之为
“臭虫(bug)”,把排除程序故障
称之为
debug 。从此之后,在计算机领域,程序调试或查找程序故障称为 debug 。
进行程序开发时,很多情况是程序通过编译、链接
( 亦即不存在语法错误) ,
但是在运行时往往得不到正确的结果
( 需要多组输出数据进行测试)。这时往往意
味着程序存在逻辑错误
( 与语法错误对应,通常是指程序所体现出的逻辑不符合
开发者要求,或者是开发者本身对程序所要解决的某一问题的理解存在逻辑偏
差
) ,而查找逻辑错误的过程可称之为程序调试。
程序案例
下面以一个程序案例为例,介绍如何在
VC6.0 下进行程序调试。
案例:一个数如果恰好等于它的因子之和,这个数就称为
“完数”。例如,6
的因子为
1,2,3,而 6=1+2+3 ,因此是“完数”。编程序找出 1000 之内的所有
的完数,并按下面的格式输出其因子:
6 its factors are 1, 2, 3
表
1 是某同学编写的源程序。在 VC6.0 下建立 Win32 Console Application 类
型工程后,进行编译链接的结果如图
1 所示。对于表 1 中的程序功能,在其源代
码中相应注释已给出说明。对于该源代码编写是否合理、简洁,目前不做任何评
论。
表
1 求 1000 以内所有的完数 C 源代码
#include<stdio.h>
main()
{
int n,a,b,c,d,sum=0;
for (a=0;a<=8;a++) //a 表示一个三位数中的百位
{
for (b=0;b<=8;b++) //b 表示一个三位数中的十位
{
for (c=1;c<=8;c++) //c 表示一个三位数中的个位
{
n=100*a+b*10+c; //n 表示一个~1000 以内的数