IsBadReadPtr|IsBadWritePtr调试崩溃
睿丰德科技 专注RFID识别技术和条码识别技术与管理软件的集成项目。质量追溯系统、MES系统、金蝶与条码系统对接、用友与条码系统对接
遇到一未找到必然出现条件的崩溃,不知道什么时候能触发崩溃,崩溃dump显示,试图访问了非法的内存或者写入了非法的内存
此时如下两个函数就比较有用了:
[cpp] view plaincopy
- 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
RFID管理系统集成商 RFID中间件 条码系统中间层 物联网软件集成