遇到一未找到必然出现条件的崩溃,不知道什么时候能触发崩溃,崩溃dump显示,试图访问了非法的内存或者写入了非法的内存
此时如下两个函数就比较有用了:
- BOOL WINAPI IsBadReadPtr(
- __in const VOID *lp,
- __in UINT_PTR ucb
- );
- BOOL WINAPI IsBadWritePtr(
- __in LPVOID lp,
- __in UINT_PTR ucb
- );
可以用这两个函数在崩溃附近的地方加上判断,附加进程打断点或者记日志,运行程序崩溃的时候会立马断下来,这是就很容易分析崩溃的原因了!
经验:不容易必然重现的崩溃,在分析dump毫无头绪的情况下,思路应该是,1>从dump与日志分析,努力寻找必然崩溃的条件,2,增加必然崩溃的代码,分析dump