如何调试驱动异常?
我把4.2BSP的串口驱动移植到2440 5.0BSP上,但是在加载的过程中出现异常,请问如何调试和定位异常呢?请大家指点,谢谢。
系统启动阶段出现如下信息。
Data Abort: Thread=988c525c Proc=81d36340 'device.exe'
AKY=00000005 PC=03d723bc(ceddk.dll+0x000023bc) RA=01e640f4(ser2440.dll+0x000040f4) BVA=06000001 FSR=00000007
RaiseException: Thread=988c525c Proc=81d36340 'device.exe'
AKY=00000005 PC=03f8dfec(coredll.dll+0x0001dfec) RA=802135e8(NK.EXE+0x000135e8) BVA=00000001 FSR=00000001
Data Abort: Thread=988c525c Proc=81d36340 'device.exe'
AKY=00000005 PC=03d723bc(ceddk.dll+0x000023bc) RA=01e640f4(ser2440.dll+0x000040f4) BVA=06000001 FSR=00000007
RaiseException: Thread=988c525c Proc=81d36340 'device.exe'
AKY=00000005 PC=03f8dfec(coredll.dll+0x0001dfec) RA=802135e8(NK.EXE+0x000135e8) BVA=00000001 FSR=00000001
[解决办法]
这个问题难说了 哎
[解决办法]
try catch捕获不到么?
用Map相关的东西定位一下
[解决办法]
_try
{
//你要跑的code
}
_except (GetExceptionCode() == STATUS_ACCESS_VIOLATION ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH)
{
RETAILMSG(1, (TEXT("EXCEPTION IN COM_写你问题的地方l!!!!\r\n")));
SetLastError(E_FAIL);
}
做下异常处理
[解决办法]
看MAP文件了,PC=03d723bc(ceddk.dll+0x000023bc)表示错误在这个地方,看这个地方是什么系统函数,一般是你把系统函数用错了。因为MS提供的东西一般没有问题的
[解决办法]
看我的博客文章:
http://blog.csdn.net/singlerace/archive/2008/07/15/2655154.aspx
[解决办法]
可以使用Passive KITL,正常使用机器发现当机再联usb,直接定位到出现异常的代码处。
[解决办法]