这是一个标题:实用调试技巧
1.什么是bug?
2.调试是什么?有多重要?
3.debug和release的介绍.
4.Windows环境调试介绍.
5.一些调试的实例.
6.如何写出好(易于调试)的代码.
什么是bug?
bug是客观存在的.bug就是幺蛾子.
调试是什么?有多重要?
如何把bug找出来并解决掉?这样的过程叫"调试".
1.发现bug/确认存在bug. 需求
产品经理(产品) => 提出需求 => 需求文档 => 程序员实现需求
2.定位bug(最难的过程)找到哪个代码和这个bug有关联.要求定位到具体某一行或者某几行.
核心思想:二分查找.
3.确认原因(最重要的步骤).只要bug定位的准,原因分析一般比较简单.
4.提出解决方案并实施.
5.回归测试:再测试一下,程序中的bug是否真的被解决.也要尽可能保证改动的代码没有引入新的bug.
需要把曾经的功能都测试一遍.如果程序的功能太多一项一项测工作量要怎么办呢?这就需要自动化测试(即测试开发).
VS的调试器的用法.为了方便大家更高效的定位问题.
很方便的看到程序运行的中间结果.
两个核心操作:
1.打断点.程序执行到某一行代码,就让它停下来.让程序员看到中间结果.左键在行号之前单击,出现一个红色圆点.断点表示程序接下来要运行的代码.
2.开始调试/继续运行.F5(不是Ctrl+F5)
熟悉这两个操作之后可以尝试点击"调试"按钮"F11" "F12",继续"窗口" "自动窗口" "监视" "调用堆栈"等自行摸索.
调试实例:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(){
int i = 0;
int sum = 0;//保存最终结果
int n = 0;
int ret = 1;//保存n的阶乘
scanf("%d",&n);
for (i = 1; i <= n; i++){
ret = 1;
int j = 0;
for (j = 1; j <= i; j++){
ret *= j;
}
sum += ret;
}
printf("%d\n", sum);
system("pause");
return 0;
}
debug和release的介绍.
debug通常称为调试版本,release称为发布版本.
Debug版本的程序相比于Release来说多了很多的调试信息.辅助调试器来进行工作.
使用调试器的时候需要使用Debug版本.
如果真正发布程序给用户来用,需要使用Release版本.