当前位置:文档之家› C语言程序调试指导

C语言程序调试指导


2. 编辑源程序文件
(1)建立文件
①单击“文件”-“新建”, 弹出“新建”对话框。
② 选择“文件”选项卡。单击 “C++ Source File”选项,在 “文件”文件框中输入文件名, 单击“确定”按钮。系统自动 返回VC6主窗口。
③显示文件编辑区窗口,在文 件编辑区窗口输入源程序文 件。
输入文件名
2020年8月20日星期四1时56分56秒
观察观变察量变量区 值的变化
执执行行的的是是 fmacati(n)函()函数数
点击step into
函数调试
在fact()函数内添加断点,也可以 不用断点,用单步
点击GO命令或将光标放到要停 留的程序行,点击运行到光标 处命令继续执行程序
注意观察变量区,result的值不对 ,原因是没有初始化。找到问题
继续按F10键, 或工具栏中的 step over图 标,进行单步 调试
单击step over图标
2020年8月20日星期四1时56分56秒
观察变量 值的变化
执行到scanf() 语句时,在运行 窗口输入数据
回到调试窗口观 察变量值的变化 ,红色为刚刚更 改过的变量值
键入的是5,但 变量x的值却是 7.0064,发现问 题, scanf()语 句有问题,输入 格式附不对!
光标置于要 设置“断点” 的程序行
可通过此方 法设置多个 “断点”
函数调试
例:求 1!+2!+…+10!的程 序,i!是通过调用 fact()函数实现的, 编译无语法错误,但 运行结果不对,此时 要借助调试来定位逻 辑错误
在有自定义函数的 程序调试时,为了 能跟踪进函数内部 ,一般在函数调用 处设置断点
C语言程序实例:
#include "stdio.h" void main() {
printf("This is a C program.\n"); }
/*文件包含*/ /*主函数*/
/*输出信息*/
1.启动Visual C++ 6.0环境 2.编辑源程序文件 3.编译和连接 4.执行
2020年8月20日星期四1时56分56秒
添加2个断点
单击“文件”
单击“C++ Source file”
选择文件夹 输入源程序
单击“确定”
2020年8月20日星期四1时56分56秒
3. 编译
方法一:选择主窗口 菜单栏中“编译”菜单 项;系统弹出下拉菜单, 选择“编译”菜单命令。
方法二:单击主窗口编译 工具栏上的 “complie” 按钮进行编译。
单击“complie”
双击错 误信息
2020年8月20日星期四1时56分56秒
3. 连接
方法一:选择 主窗口菜单 栏中“编译” 菜单项;系 统弹出下拉 菜单,选择 “构件”菜 单命令。
单击“编译”
单击“Build”
方法二:单击 主窗口编译 工具栏上的 “Build”按 钮
(1)系统对程序文件进行连接,生成以项目名称命名的可执行目 标代码文件.exe。
1.启动Visual C++ 6.0环境
方法:单击 “开始”-“程序”-“Microsoft Visual studio 6.0”-“Microsoft Visual C++ 6.0”命令,启动Visual C++,VC6 主窗口如下:
标题栏 菜单栏 工具栏
文件编辑区
项目工作区
输出区 状态栏
2020年8月20日星期四1时56分56秒
以如下程序为例:
#include <stdio.h>
程序编译没有错 误,连续运行,
输入0,结果为0
int main(void) {
int x, y; printf("Enter x: "); scanf("%f", &x);
输入5,结果为0
if(x = 0){ y = 0;
输入-8.9,结果 还为0
点击GO命令 运行
2020年8月20日星期四1时56分56秒
函数调用处 设置断点
函数调试
观察变量i和sum 的值,正确
注意此时显示执行的 是main()函数
按下F11或step into 图标,跟进fact()函数
注意观察变量区,只有 变量n,其值为1,即实 参i的值被传给了形参n ,而主函数中的变量均 不可见,即各函数内部 定义的变量的作用域仅 限于本函数
单击“编译”
2020年8月20日星期四1时56分56秒
3. 编译
(1)系统对程序 文件进行编译 时,如发现程 序有语法错误, 则在输出区窗 口中显示错误 信息,给出错 误的性质、出 现位置和错误 的原因等。
2020年8月20日星期四1时56分56秒
输出区
拉动滑动块 可查看出错 信息
3. 编译
(2)双击某条 错误,编辑 区窗口右侧 出现一个箭 头,指示出 现错误的程 序行。用户 据此对源程 序进行相应 的修改,并 重新编译, 直到通过为 止。
(2)输出区窗口中显示连接信息。
2020年8月20日星期四1时56分56秒
4. 执行
方法一:单击“编译”菜单 中“执行”命令。
方法二:单击主窗口编译工 具 栏 上 的 “ Build Execute” 按 钮 来 执 行 编 译连接后的程序。
运行成功,屏幕上输出执行 结果,并提示信息: “ Press any key to continue”。此时按任意键 系统都将返回VC++ 6.0主 窗口。
} else{
y = 2*x+1;
}
printf("y = %f\n", y);
return 0;
2020年8月20日星期四1时56分56秒
}
单步调试
按控制键F10, 进行单步调试
将要执 行的语 句
程序区黄色箭 头指向的为将 要执行的语句
变量显示区
2020年8月20日星期四1时56分56秒
单步调试
点击debug菜单,选择Stop
debugging返回编辑状态,修改程
序 单步每次执行一条语句,step into
可以跟进函数内部,step over则
不能。 注意:只在自定义函数
调用时用step into
观察变量
2020年8月20日星期四1时56分56秒
区的变化
点击GO命令
点击debug
点击运行到 光标处
C语言程序的调试、运行步骤
编辑
编译
连接
运行
开始
源程序 .c / .cpp
目标程序 .obj
语法 错误
连接 错误
可执行程序 .exe
运行 错误
结果
2020年8月20日星期四1时56分56秒
欢迎加入长沙 理工大学考试资 料群: 622460717
2020年8月20日星期四1时56分56秒
使用VC++ 6.0编程环境运行C程序
2020年8月20日星期四1时56分56秒
断点调试
当程序较大 时,单步调 试较慢,此 时可以设置 断点
点击GO命令运点运击行再可G次取单O按消击命下断“令,点断点” 行,会在第一
个断点处停下,
观察变量的值
及输出信息, 结合F10单步
红点表示断点
调试,会很快
定位错误
2020年8月20日星期四1时56分56秒
单击“Build Execute”
单击“编译”
在执行程序过程中出现运行错误。用户要修改源程 序文件并且重新编译、连接和执行。
2020年8月20日星期四1时56分56秒
பைடு நூலகம்
6. 调试
如果程序运行结果和预期的不一致,则程序可能存在逻辑错误,此
时应通过调试来定位错误发生的程序段或语句行。
调试方法有:单步调试和断点调试
相关主题