C语言程序调试

C语言程序调试

ID:40710510

大小:37.10 KB

页数:19页

时间:2019-08-06

C语言程序调试_第1页
C语言程序调试_第2页
C语言程序调试_第3页
C语言程序调试_第4页
C语言程序调试_第5页
资源描述:

《C语言程序调试》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、一:深入了解编译、链接、组建(LookintoCompile、Linking、Build) (1)Compile(2)Linking(3)Build 二:断点(BreakPoint)(1)普通断点(NomalBreakPoint)(2)条件断点(ConditionBreakPoint)(3)数据断点(DataBreakPoint)三:断点之后能做些什么?(WhatcanIdoafterBreakPoint)(1)variables(2)watch(3)stack(4)memory四:断言(Asse

2、rt)五:printf()六:Log七:Trace八:虚拟内存简介(VirtualMemoryIntro)九:常见的段错误(CommonSegmentationFault)(1)堆区内存错误(HeapMemoryErrors)1,未初始化的内存仿问(UninitializedMemoryAccess)2,无效的内存仿问(InvalidMemoryAccess)3,内存泄露(Memoryleaks)4,未分配内存(Missingallocation)(2)栈区内存错误(StackMemoryErro

3、rs)1,未初始化的内存仿问(UninitializedMemoryAccess)2,无效的内存仿问(InvalidMemoryAccess)3,数组越界(Writingofftheendofthearray)4,栈溢出(StackOverflows)十:轻松解决内存泄漏(HuntingMemoryLeaks) 结束语:怎样尽可能的避免错误**********************************************************/下面就开始祥细讲解,/一:深入了解Comp

4、ile、Linking、Build(1)Compile-编译当您点击编译按钮时,编译器将会把你的源代码文件(.c文件)转换为目标文件(.obj文件),目标文件包含的是源代码文件翻译后的机器语言。这些是不能被直接运行的,还需要链接器将此中间代码与其他代码相结合来生成可执行文件。请转看Linking,Compile时,编译器通常会给你2种类型的提示:warnings和errorswarnings 别小看warnings,它有可能会导致相当严重且极其隐蔽的bug,尤其是在指针管理内存这一块,/常见的wa

5、rning有以下几种类型1,使用了未经初始化的变量,或者定义变量了却没有使用。解析:未经初始化的变量会存一个随机值,绝大多数的时候这个值都不是你想要的,你用它,编译器能不给你warning吗,?2,使用了一些看上去非常愚蠢的语句,编译器都看不下去了例如,if(blueguy=0)           printf("blueguy=0!!");       if(blueguy&&greengirl

6、

7、hemy)           ;3,使用了未定义的语句(注意,vc6.0是不会给这样的语句一个

8、warning的)例如,j=i+++i++;  //我自己都不知道自己想表达什么意思,呵呵       x=x>0?x++:x--;4,类型不匹配例如,char*blueguy=(int*)greengirl;本意是按单字节仿问内存的,结果却按四字节仿问内存,你感到崩溃,我感到崩溃,编译器也感到崩溃,估计编译器会真的崩溃了,/5,函数原型明明写着有返回值的,结果函数体内却没有return一个值,反之亦然。例如,intmain(void){}或者voidmain()14{    return0;}.

9、.....等等,等等,等等。/好了,warnings就简单介绍到这里了,希望您写的程序里一个warning也没有errors出现errors时,相对来说比较好解决一些,通常编译器会给你明确的提示像,"syntaxerrors","unexpectedparenthesis","unexpectedendoffile"之类的,常见的errors有以下几种类型(1)语句缺少";"号例如,for(;)structbluguy{   intx;}(2)括号不匹配例如,intmain(void){if(!b

10、lueguy Compile就这样结束了,下面接着看Linking (2)Linking-链接vc6.0上是没有Linking按钮的,或许是我菜了,/没注意到vc6.0的Build把Compile与Linking合在一起了,/链接的作用是将目标代码、系统的标准启动代码和库代码结合在一起,生成可执行程序。在你Compile的时候,编译器假定所有的结构体、函数、全局变量都已经在别的文件里声明了,但这个假设并不总是成立的,链接器就是在文件中查看这些结构体、函数以及全局变量是不是已经声明了

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。