一.什么是BUG?
在电脑系统或程序中,隐藏着的一些未被发现的缺陷或问题统称为bug(漏洞)。也称为缺陷 、臭虫。
第一次被发现的导致计算机错误的飞蛾,也是第一个计算机程序错误。
二.调试
调试 (英语: Debugging / Debug ),又称除错,是发现和减少计算机程序或电子仪器设备中程序错误的一个过程。
调试步骤:
1.发现程序错误的存在2.以隔离、消除等方式对错误进行定位3.确定错误产生的原因4.提出纠正错误的解决办法5.对程序错误予以改正,重新测试
Debug 和 Release 的介绍Debug 通常称为调试版本 ,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本 ,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。例如:
#include<stdio.h> int add(int x, int y) { return x + y; } int main() { int a = 10; int b = 20; int c = add(a, b); printf("%d\n", c); return 0; }
在Debug的情况下:
在Release的情况下:
相比较之下,在Release的情况,内存占比小。
三. Windows环境调试介绍
调试环境的准备:
在环境中选择 debug 选项,才能使代码正常调试。
学会快捷键:
F5---开始调试启动调试,经常用来直接跳到下一个断点处。不拦截就一直执行完。F5不会单独使用,一般与F9配合使用。F9---切换断点/设置(取消)断点创建断点和取消断点断点的重要作用,可以在程序的任意位置设置断点。这样就可以使得程序在想要的位置随意停止执行,继而一步步执行下去。鼠标右击断点,里面可以设置条件断点,输入条件表达式从而精准定位到某次循环,提高效率。
F10逐过程,通常用来处理一个过程,一个过程可以是一次函数调用,或者是一条语句。当碰到函数不会进入,直接执行完函数的内容。F11逐语句,就是每次都执行一条语句,但是这个快捷键可以使我们的执行逻辑进入函数内部(这是最长用的)。会执行代码的每一个细节,粒度更细。CTRL + F5开始执行不调试,如果你想让程序直接运行起来而不调试就可以直接使用。如果以上快捷键按起来不生效,则需要按Fn-辅助功能键然后配合以上快捷键使用。
如果不想按Fn,就按Fn+Esc关闭辅助功能键。就可以直接按快捷键了。
调试的时候查看程序当前信息:
1.查看临时变量的值这些窗口都必须在程序按了F10或F11然后才可以在调试的窗口里面找到 。想查看临时变量的值,可以运用监视。
2.调试后,查看内存信息。
然后通过&,可得知变量地址
3.查看调用堆栈
通过调用堆栈,可以清晰的反应函数的调用关系以及当前调用所处的位置
4. 查看汇编信息4.1 :右击鼠标,选择【转到反汇编】4.2调试窗口:5. 查看寄存器信息
可以查看当前运行环境的寄存器的使用信息。