DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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

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

 

[cpp] view plaincopy
 
  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

posted on 2014-05-05 10:26  DoubleLi  阅读(1289)  评论(0编辑  收藏  举报