2009年12月6日

Crash dump中需要重点关注的信息

摘要: Crash都是发生在某一函数中, 而95%的crash都是由下面两种情况中的一种导致的: 发生crash的函数获得了错误的参数. 发生crash的函数使用了损坏了的内部数据. 代码的执行过程是对数据进行变化的过程. 对同一段代码, 在相同环境下, 如果使用的数据都相同, 那么执行的结果肯定是唯一的. 如果函数发生崩溃, 那么肯定是使用到的数据跟理想情况有差别. 函数使用的数据来源: 一是函数传入的... 阅读全文

posted @ 2009-12-06 20:57 中道学友 阅读(960) 评论(0) 推荐(0) 编辑

通过简单Dump能获得的基本信息

摘要: 如果有出错程序的dump, 哪怕dump不是在合适的时机获取的, 也可以分析出有用的信息. 通过vertarget查看系统版本和系统运行了多长时间. 通过!peb查看环境变量的情况. 由于很多第三方软件都习惯把自身路径添加到环境变量中, 所以这里很多时候可以看出一些已经安装的软件. 同时还能看到当前进程所加载的DLL和对应路径. 检查DLL和对应路径时, 可以重点检查如下的一些项目: 有没有防毒程... 阅读全文

posted @ 2009-12-06 20:34 中道学友 阅读(644) 评论(0) 推荐(0) 编辑

缩小排错的范围

摘要: 把问题的范围尽量缩小能够让排错事半功倍. 问题发生的规律和特定的环境往往就隐含了导致问题的原因.   下面是一些能够帮助缩小排错范围的checklist. 排错前浏览一遍这些问题, 说不定就有额外的发现. 1. 是否打上了最新的补丁?   2. 是否查询了support.microsoft.com, 有没有遇上已知的问题? 有没有hotfix可用来解决问题   3... 阅读全文

posted @ 2009-12-06 18:56 中道学友 阅读(278) 评论(0) 推荐(0) 编辑

对待问题的正确态度

摘要: 如果在排错开始前, 调试着已经存在畏惧心理, 那么是不可能找到问题真相的. 下面的几点可以帮助调试者克服这样的畏惧情绪.   屡试不爽的方法 ============ 无论多么复杂的程序, 总可以被简化. 我们可以先把程序的功能砍掉一半, 看看问题是否会发生, 以此来缩小问题的范围. 重复使用这样的二分法, 总可以把程序简化到只剩一行代码. 因此, 无论什么问题, 都可以用这样的... 阅读全文

posted @ 2009-12-06 18:37 中道学友 阅读(1137) 评论(0) 推荐(0) 编辑

导航

技术追求准确,态度积极向上