欢迎来到天天文库
浏览记录
ID:36393903
大小:282.91 KB
页数:13页
时间:2019-05-09
《C语言上机调试宝典》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言上机调试杨自恒C语言上机调试什么是调试?在C语言编程过程中,避免不了地会出现各种错误,我们称之为:BUG;消除这些BUG,我们称之为:Debug;DEBUG中文翻译为:调试。C语言上机调试C语言有几种BUG?语法错误:由于编写的代码不符合C语言语法规范造成的错误;出现语法错误的程序不能编译、连接生成可执行文件(EXE),所以不能运行;逻辑错误:程序已进入到运行状态;程序运行的结果不对;在逻辑上程序出现了混乱。C语言上机调试调试常用快捷键::激活系统菜单:将光标在编辑窗口和、信息窗口之间切换:加载2、d>一个文件+:查看程序运行结果:得到有关编辑器在线帮助+:得到有关C语言的在线帮助+:终止正在运行的程序C语言上机调试调试常用快捷键(块操作):KB:定义块首KK:定义块尾KV:块移动KC:块复制KY:块删除KH:取消块定义C语言上机调试调试常用快捷键:QF:查找字符串QA:查找并替换字符串Y:删除一行QY:删除从光标位置到行末的所有字符C语言3、上机调试语法错误调试方法:注意信息窗口中错误与警告的数量;先消除错误后消除警告;消除错误的过程中一定要有先后次序前面的错误没解决之前不要去消除后面的!!C语言上机调试逻辑错误调试方法—快捷键::调试运行;:程序从当前位置执行到光标处;:执行一行代码(有函数则进入);:执行一行程序(有函数不进入);:标记、取消断点;:添加监视变量。C语言上机调试逻辑错误调试方法—过程:发现错误结果;断定显示错误结果对应的变量;添加并监视该变量;在执行该变量的前一行设置断点;执4、行程序等待程序停下来;判断出错原因。常见错误提示(警告类)‘XXX’declarebutneverused变量XXX已定义但从未用过。‘XXX’isassignedavaluewhichisneverused变量XXX已赋值但从未用过。Codehasnoeffect程序中含有没有实际作用的代码。Non-portablepointerconversion不适当的指针转换,可能是在应该使用指针的地方用了一个非0的数值。Possibleuseof‘XXX’beforedefinition表达式中使用了未赋值的变量Redeclarationo5、f‘main’一个程序文件中主函数main不止一个。Suspiciouspointerconversion可疑的指针转换。通常是使用了基本类型不匹配的指针。Unreachablecode程序含有不能执行到的代码。常见错误提示(错误)Compoundstatementmissing}infunctionmain程序结尾缺少括号}。“}”expected;“(”expected等复合语句或数组初始化的结尾缺少“)”;“(”。Caseoutsideofswitchcase不属于Switch结构,多由于switch结构中的花括号不配对所致。C6、asestatementmissing‘:’switch结构中的某个case之后缺少冒号。Constantexpressionrequired定义数组时指定的数组长度不是常量表达式。Declarationsyntaxerror结构体或联合类型的定义后缺少分号。Declarationwasexpected缺少说明,通常是因为缺少分界符如逗号、分号、右圆括号等所引起的。DefaultoutsideswitchDefault部分放到了switch结构之外,一般是因为花括号不匹配而引起的。dostatementmusthavewhiledo语7、句中缺少相应的while部分。Expressionsyntax表达式语法错。如表达式中含有两个连续的运算符Extraparameterincall‘fun’调用函数fun时给出了多余的实参。Functionshouldreturnavalue函数应该返回一个值,否则与定义时的说明类型不匹配。Illegaluseofpointer指针被非法引用,一般是使用了非法的指针运算。Invalidpointeraddition指针相加非法。一个指针(地址)可以和一个整数相加,但两个指针不能相加。Lvaluerequired赋值运算的左边是不能寻址8、的表达式。Misplacedelse程序遇到了没有配对的elseNomatching表达式中的括号不配对。Pointerrequiredonleftsideof_>在“_>”运算的左边只能允许一个指针而不能是一个一般的结
2、d>一个文件+:查看程序运行结果:得到有关编辑器在线帮助+:得到有关C语言的在线帮助+:终止正在运行的程序C语言上机调试调试常用快捷键(块操作):KB:定义块首KK:定义块尾KV:块移动KC:块复制KY:块删除KH:取消块定义C语言上机调试调试常用快捷键:QF:查找字符串QA:查找并替换字符串Y:删除一行QY:删除从光标位置到行末的所有字符C语言
3、上机调试语法错误调试方法:注意信息窗口中错误与警告的数量;先消除错误后消除警告;消除错误的过程中一定要有先后次序前面的错误没解决之前不要去消除后面的!!C语言上机调试逻辑错误调试方法—快捷键::调试运行;:程序从当前位置执行到光标处;:执行一行代码(有函数则进入);:执行一行程序(有函数不进入);:标记、取消断点;:添加监视变量。C语言上机调试逻辑错误调试方法—过程:发现错误结果;断定显示错误结果对应的变量;添加并监视该变量;在执行该变量的前一行设置断点;执
4、行程序等待程序停下来;判断出错原因。常见错误提示(警告类)‘XXX’declarebutneverused变量XXX已定义但从未用过。‘XXX’isassignedavaluewhichisneverused变量XXX已赋值但从未用过。Codehasnoeffect程序中含有没有实际作用的代码。Non-portablepointerconversion不适当的指针转换,可能是在应该使用指针的地方用了一个非0的数值。Possibleuseof‘XXX’beforedefinition表达式中使用了未赋值的变量Redeclarationo
5、f‘main’一个程序文件中主函数main不止一个。Suspiciouspointerconversion可疑的指针转换。通常是使用了基本类型不匹配的指针。Unreachablecode程序含有不能执行到的代码。常见错误提示(错误)Compoundstatementmissing}infunctionmain程序结尾缺少括号}。“}”expected;“(”expected等复合语句或数组初始化的结尾缺少“)”;“(”。Caseoutsideofswitchcase不属于Switch结构,多由于switch结构中的花括号不配对所致。C
6、asestatementmissing‘:’switch结构中的某个case之后缺少冒号。Constantexpressionrequired定义数组时指定的数组长度不是常量表达式。Declarationsyntaxerror结构体或联合类型的定义后缺少分号。Declarationwasexpected缺少说明,通常是因为缺少分界符如逗号、分号、右圆括号等所引起的。DefaultoutsideswitchDefault部分放到了switch结构之外,一般是因为花括号不匹配而引起的。dostatementmusthavewhiledo语
7、句中缺少相应的while部分。Expressionsyntax表达式语法错。如表达式中含有两个连续的运算符Extraparameterincall‘fun’调用函数fun时给出了多余的实参。Functionshouldreturnavalue函数应该返回一个值,否则与定义时的说明类型不匹配。Illegaluseofpointer指针被非法引用,一般是使用了非法的指针运算。Invalidpointeraddition指针相加非法。一个指针(地址)可以和一个整数相加,但两个指针不能相加。Lvaluerequired赋值运算的左边是不能寻址
8、的表达式。Misplacedelse程序遇到了没有配对的elseNomatching表达式中的括号不配对。Pointerrequiredonleftsideof_>在“_>”运算的左边只能允许一个指针而不能是一个一般的结
此文档下载收益归作者所有