调试
zj0789
这个作者很懒,什么都没留下…
展开
-
错误的排查
错误的排查指发现并解决错误。错误的发现就是找出错误的原因和发生错误的语句。由于常将错误成为bug,所以错误的发现也被称为debug。错误的解决是在发生错误之后,通过分析错误的原因,纠正错误的语句。错误的解决要依赖于实际的程序和程序员。1,错误信息的理解当发生错误时,编译器会给出一些提示,根据这些提示就可以查找并定位到错误发生点。2,错误发现的办法有些错误从错误提示就可看清楚原因,这转载 2013-11-14 15:48:13 · 1005 阅读 · 0 评论 -
常见bug的分类
语法错误比较容易识别,下面主要介绍一些非语法的错误。1、内存泄漏内存泄漏指分配的内存在用完后没有收回,导致一段时间后内存减少,系统变慢。例如,malloc、new等动态申请内存的操作。当申请了一块内存然后在释放前又一次申请时,那么原来那块内存将丢失不能被收回。2、逻辑错误当语法正确,但是却没有达到预期的目的时,就发生了逻辑错误。这多是算法设计有缺陷或代码输入错误造成的。这种错误无法转载 2013-11-14 16:06:41 · 2461 阅读 · 0 评论 -
调试的技巧
相关研究表明软件的编写中,大多数时间和精力是花在了调试上。好的调试方法也是编写好程序的关键。下面将介绍常用的集中调试技巧,主要有断言、轨迹、断点等。1、断言assert断言就是判断,assert断言有两种,分别是assert和ASSERT。其中,前者是标准C++中的宏,后者是MFC中的宏。断言的功能是测试它的参数,若参数为0 ,则中断执行并打印一段说明消息。在Release版本的程序中它不转载 2013-11-14 16:48:28 · 689 阅读 · 0 评论 -
堆和栈的区别
堆(Heap)程序运行时,系统会预留一块供动态分配用到“自由存储区”,这块存储区就是堆。堆需要显式分配,分配方法是调用malloc()函数和new运算符,释放时则要调用对应的free()函数和delete运算符。栈(Stack)栈由系统维护的先入先出的内存空间。它常用来保存函数中的临时变量以及函数调用时的现场(指函数返回点,参数等信息),函数执行结束时这些存储单元自动释放。栈不转载 2013-11-14 11:27:08 · 597 阅读 · 0 评论