首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

怎么调试驱动错误

2012-02-04 
如何调试驱动异常?我把4.2BSP的串口驱动移植到2440 5.0BSP上,但是在加载的过程中出现异常,请问如何调试和

如何调试驱动异常?
我把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,直接定位到出现异常的代码处。
[解决办法]

探讨
引用:
可以使用Passive KITL,正常使用机器发现当机再联usb,直接定位到出现异常的代码处。


正常使用机器发现当机再联usb???这个是什么意思?

KITL是可以帮助解决一些问题。我想通过看上面的一些信息,查看配置文件来调试,每次都KITL,太浪费时间了。

[解决办法]
探讨
奇怪这个RA是程序返回的地址,在wince下应该是虚拟地址0x80000000以上才对啊,怎么会是01e640f4的?
AKY=00000005 PC=03d723bc(ceddk.dll+0x000023bc) RA=01e640f4(ser2440.dll+0x000040f4) BVA=06000001 FSR=00000007

[解决办法]
在PC=03d723bc(ceddk.dll+0x000023bc)这个地方====BASE ADDRESS OF ceddk.dll+0x000023bc。PC指针指到了这个地方,就是这个地方有问题

热点排行