遇到一未找到必然出现条件的崩溃,不知道什么时候能触发崩溃,崩溃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
使用IsBadPtr解决内存访问错误

本文介绍如何利用IsBadReadPtr与IsBadWritePtr函数来定位难以复现的内存访问错误问题,通过在可疑代码处加入这些函数判断,可以有效辅助分析和定位非法内存访问导致的程序崩溃。
1万+

被折叠的 条评论
为什么被折叠?



