IsBadReadPtr|IsBadWritePtr调试崩溃

简介: 遇到一未找到必然出现条件的崩溃,不知道什么时候能触发崩溃,崩溃dump显示,试图访问了非法的内存或者写入了非法的内存 此时如下两个函数就比较有用了:   [cpp] view plaincopy   BOOL WINAPI IsBadReadPtr(     ...

遇到一未找到必然出现条件的崩溃,不知道什么时候能触发崩溃,崩溃dump显示,试图访问了非法的内存或者写入了非法的内存

此时如下两个函数就比较有用了:

 

[cpp]  view plain copy
 
  1. BOOL WINAPI IsBadReadPtr(  
  2.   __in  const VOID *lp,  
  3.   __in  UINT_PTR ucb  
  4. );  
  5.   
  6. BOOL WINAPI IsBadWritePtr(  
  7.   __in  LPVOID lp,  
  8.   __in  UINT_PTR ucb  
  9. );  


可以用这两个函数在崩溃附近的地方加上判断,附加进程打断点或者记日志,运行程序崩溃的时候会立马断下来,这是就很容易分析崩溃的原因了!

 

经验:不容易必然重现的崩溃,在分析dump毫无头绪的情况下,思路应该是,1>从dump与日志分析,努力寻找必然崩溃的条件,2,增加必然崩溃的代码,分析dump

目录
相关文章
|
7月前
|
Windows
调试实战——使用windbg调试TerminateThread导致的死锁
本文记录了调试 TerminateThread 导致的死锁问题
|
7月前
|
C++ Windows
使用 windbg gflags dumpbin 排查应用程序启动错误
使用 windbg gflags dumpbin 排查应用程序启动错误
|
3月前
|
JavaScript IDE Java
bugly崩溃排查3:观察是谁调用了崩溃函数
bugly崩溃排查3:观察是谁调用了崩溃函数
21 0
日常总结一:下面的代码会崩溃么?
日常总结一:下面的代码会崩溃么?
|
6月前
|
小程序 Android开发 iOS开发
小程序 | 小程序修复了一些bug
前段时间,有朋友反应小程序的今天吃个啥有bug,不能正常使用。
|
7月前
|
存储
调试实战——使用windbg调试崩溃在ole32!CStdMarshal::DisconnectSrvIPIDs
使用windbg调试崩溃在ole32!CStdMarshal::DisconnectSrvIPIDs
|
9月前
|
Java 编译器 应用服务中间件
几行代码就可以把系统高崩溃;
几行代码就可以把系统高崩溃;
68 0
|
存储 NoSQL Linux
Android系统调试-程序崩溃调试
Android系统调试-程序崩溃调试
403 0
iOS8切换tabar引起崩溃错误排查
iOS8切换tabar引起崩溃错误排查
97 0