缩小排错的范围
把问题的范围尽量缩小能够让排错事半功倍. 问题发生的规律和特定的环境往往就隐含了导致问题的原因.
下面是一些能够帮助缩小排错范围的checklist. 排错前浏览一遍这些问题, 说不定就有额外的发现.
1. | 是否打上了最新的补丁? | |
2. | 是否查询了support.microsoft.com, 有没有遇上已知的问题? 有没有hotfix可用来解决问题 | |
3. | 问题是偶尔发生还是总可以重现? | |
4. | 问题只发生在几台机器上还是所有环境下都有? | |
5. | 有没有简化了的可以重现问题的程序供我们进行测试? | |
6. | 问题发生时的screen-shot抓了么? | |
7. | 重现问题的具体步骤是什么? 有什么特别的么? | |
8. | 问题发生后, 有哪些方法可以暂时解决或缓解? | |
9. | 装了防毒软件了么? 有没有防火墙? | |
10. | 软件架构大致是怎样的? 在整个软件环境中资料是如何流动的? | |
11. | 排错工作是在生产环境上做还是在测试环境上做? | |
12. | 用到数据库了么? 如果用到了, 是什么数据库? | |
13. | 问题跟负荷有关么? | |
14. | 用什么开发的? 全是托管代码么? 有没有用VB, C++, 或者COM+? | |
15. | 网络环境如何? 用到NAT(Network Address Translation)了么? | |
16. | 是cluster环境么? 有没有用到负载均衡? | |
17. | 是domain环境么? | |
18. | 如果不是domain环境, 有没有尝试在服务器和客户端中创建相同密码的相同账户进行测试? | |
19. | 最近装了什么系统补丁? 有没有尝试卸载补丁后进行测试? | |
20. | 除了问题本身以外, 系统有什么异常么? 比如CPU和内存使用, 以及网络的使用情况? | |
21. | 程序的负载在正常的范围内么? | |
22. | 系统日志中有什么异常么? | |
23. | 有没有尝试改变程序的账号进行测试? 比如创建另外一个管理员账号登录来进行测试. | |
24. | 程序有UI么? 是双击启动还是通过任务管理定时启动? |
注: 这个表格不错, 如果有可能, 今后自己再总结一些添加进来.
摘自:<Windows用户态程序高效排错>