2022年C语言程序调试功能和常见错误 .pdf
《2022年C语言程序调试功能和常见错误 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言程序调试功能和常见错误 .pdf(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C 语言编译环境中的调试功能及常见错误提示调试功能1常用健 : 激活系统菜单 : 将光标在编辑窗口和、信息窗口之间切换 : 加载一个文件+ : 查看程序运行结果 : 得到有关编辑器在线帮助+ : 得到有关 C 语言的在线帮助+ : 终止正在运行的程序2块操作 KB: 定义块首 KK: 定义块尾 KV: 块移动 KC: 块复制 KY: 块删除 KH: 取消块定义3查找、替换和删除操作 QF: 查找字符串名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 18 页 - - - -
2、 - - - - - QA: 查找并替换字符串Option: G(全程),B(向文件头),N(直接替换) Y : 删除一行 QY: 删除从光标位置到行末的所有字符编译中的常见错误例析(1) 警告类错误,XXX?declare but never used变量 XXX 已定义但从未用过。,XXX?is assigned a value which is never used变量XXX 已赋值但从未用过。Code has no effect 程序中含有没有实际作用的代码。Non-portable pointer conversion不适当的指针转换,可能是在应该使用指针的地方用了一个非 0 的数值
3、。Possible use of ,XXX?before definition表达式中使用了未赋值的变量Redeclaration of ,main?一个程序文件中主函数main不止一个。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 18 页 - - - - - - - - - Suspicious pointer conversion可疑的指针转换。通常是使用了基本类型不匹配的指针。Unreachable code程序含有不能执行到的代码。(2) 错误或致命错误Com
4、pound statement missing in function main程序结尾缺少括号 。“ ” expected ; “ ( ” expected 等复合语句或数组初始化的结尾缺少 “)”; “(” 。Case outside of switch case不属于 Switch结构,多由于 switch结构中的花括号不配对所致。Case statement missing ,:?switch结构中的某个case之后缺少冒号。Constant expression required定义数组时指定的数组长度不是常量表达式。Declaration syntax error 结构体或联合类型
5、的定义后缺少分号。Declaration was expected 缺少说明,通常是因为缺少分界符如逗号、 分号、右圆括号等所引起的。Default outside switch Default部分放到了 switch结构之外,一般是因为花名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 18 页 - - - - - - - - - 括号不匹配而引起的。do statement must have whiledo 语句中缺少相应的 while 部分。Expression s
6、yntax 表达式语法错。如表达式中含有两个连续的运算符Extra parameter in call ,fun?调用函数 fun 时给出了多余的实参。Function should return a value函数应该返回一个值,否则与定义时的说明类型不匹配。Illegal use of pointer 指针被非法引用,一般是使用了非法的指针运算。Invalid pointer addition指针相加非法。 一个指针(地址)可以和一个整数相加, 但两个指针不能相加。Lvalue required赋值运算的左边是不能寻址的表达式。Misplaced else程序遇到了没有配对的else No
7、 matching 表达式中的括号不配对。Pointer required on left side of_在“ _”运算的左边只能允许一个指针而不能是名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 18 页 - - - - - - - - - 一个一般的结构体变量或联合类型的变量。Statement missing;程序遇到了后面没有分号的语句。Too few parameters in call 调用某个函数时实参数目不够。Unable to open include
8、 file ,XXXXXXXXXXX?头文件找不到。Unexpected 或:或 在不希望的地方使用了 或: 。Undefined symbol ,X?in function fun 函数 fun 中的变量X 没有定义。5. 连接中的常见错误主要错误类似于 “ undefined symbol _print in modula xxx ” (print 没有定义 ) ,通常是函数名书写错误。6. 运行中的常见错误Abnormal program termination程序异常终止。通常是由于内存使用不当所致。Floating point error : Domain 或 Divide by 0
9、运算结果不是一个数或被0 除Null pointer assignment 对未初始化的指针赋值,程序有严重错误。User break在运行程序时终止。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 18 页 - - - - - - - - - 7. 程序的跟踪调试利用 Run 菜单可以进行程序的跟踪调试(1)GO to Cursor ()选择该选项使程序执行到光标所在行首先将光标移到某行(一般为可执行),选择该功能项,则程序执行到该行的前一行暂停。此时程序处于跟踪调试状
10、态,并有亮条显示在暂停处,此时可以查询变量或表达式的值。(2)Trace into ()执行一条语句或一行暂停此时程序处于跟踪调试状态,并有亮条显示在暂停处。该选项可跟踪到被调函数的内部。(3)Step over ()执行一条语句或一行暂停此时程序处于跟踪调试状态,并有亮条显示在暂停处。该选项将自定义函数当作一个语句执行,不跟踪到函程序的内部。(4)Debug菜单程序处于跟踪状态时,可使用该菜单的选项。其主要是使用Evaluate目的是查询或更新变量或表达式的值。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 -
11、- - - - - - 第 6 页,共 18 页 - - - - - - - - - 选择 Evaluate功能后,系统弹出一个对话框。该对话框包含三个选项区域:Evaluate域可以输入一个含有目前代码中(程序暂停区的作用域)正在使用的变量名、或含变量的表达式、或常量表达式。按回车键后,在 Result域中显示变量或表达式的值。还可以用New value域进行调试。如果调试程序时发现Result域显示的某变量或表达式的值不正确,并能估计出该变量或表达式的值,则可以将该值输入到New value域,继续执行程序,其目的是肯定错误发生处是否在当前位置之前。如果输入这个正确的值并将程序继续执行完毕
12、而结果正确,说明在目前暂停处之前已经发生错误而之后无错误。(5)Break/Watch用于设置断点和监视表达式。选择 Add Watch功能选项,系统将弹出一个菜单,在 Add Watch框中输入变量名或表达式,按回车键后,系统在屏幕底部开辟一个窗口并显示该变量或表达式的值。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 18 页 - - - - - - - - - 【常见错误信息语句索引】Ambiguous operators need parentheses:不明确的
13、运算需要用括号括起Ambiguous symbol xxx :不明确的符号Argument list syntax error:参数表语法错误Array bounds missing in function main 缺少数组界限符 Array bounds missing :丢失数组界限符Array size too large :数组尺寸太大Bad character in paramenters :参数中有不适当的字符Bad file name format in include directive :包含命令中文件名格式不正确Bad ifdef directive synatax :编
14、译预处理ifdef 有语法错Bad undef directive syntax :编译预处理 undef有语法错Bit field too large :位字段太长Call of non-function :调用未定义的函数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 18 页 - - - - - - - - - Call to function with no prototype :调用函数时没有函数的说明Cannot modify a const object :
15、不允许修改常量对象Case outside of switch :漏掉了 case 语句Case syntax error :Case 语法错误Code has no effect :代码不可述不可能执行到Compound statement missing :分程序漏掉 Conflicting type modifiers :不明确的类型说明符Constant expression required :要求常量表达式Constant out of range in comparison :在比较中常量超出范围Conversion may lose significant digits :转换
16、时会丢失意义的数字Conversion of near pointer not allowed :不允许转换近指针Could not find file xxx :找不到 XXX 文件Declaration missing ; :说明缺少 ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 18 页 - - - - - - - - - Declaration syntax error :说明中出现语法错误Default outside of switch :Default
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年C语言程序调试功能和常见错误 2022 语言 程序 调试 功能 常见 错误
限制150内