coredll.dll+0x0002006c 的Data Abort问题原因

今天调试evc程序,总是出现几个莫名奇妙的错误如下:

Data Abort: Thread=8795c908 Proc=80becdf0 'OnLine.exe'
AKY=00000801 PC=03fa006c(coredll.dll+0x0002006c) RA=50616548(???+0x50616548) BVA=18332421 FSR=00000001
FMD_OEMIoControl::Not supported IOCtl : 0x10303FF
FMD_OEMIoControl::Not supported IOCtl : 0x10303FF

或者

Data Abort: Thread=866593e4 Proc=80becd00 'ONLINE.EXE'
AKY=00000401 PC=03fa006c(coredll.dll+0x0002006c) RA=50616548(???+0x50616548) BVA=162f2021 FSR=00000001
Assertion Failed: OnLine: File wincore.cpp, Line 1152
                                                     Data Abort: Thread=8795c908 Proc=80becd00 'ONLINE.EXE'
AKY=00000401 PC=03f9fb04(coredll.dll+0x0001fb04) RA=160bf4d8(ONLINE.EXE+0x000af4d8) BVA=2a3b14e9 FSR=00000001
FMD_OEMIoControl::Not supported IOCtl : 0x10303FF
Data Abort: Thread=8795c908 Proc=80becd00 'ONLINE.EXE'
AKY=00000401 PC=03f9fb04(coredll.dll+0x0001fb04) RA=160bf4d8(ONLINE.EXE+0x000af4d8) BVA=2a3b14e9 FSR=00000001
Data Abort: Thread=8795c908 Proc=80becd00 'ONLINE.EXE'
AKY=00000401 PC=03f9fb04(coredll.dll+0x0001fb04) RA=160bf4d8(ONLINE.EXE+0x000af4d8) BVA=2a3b14e9 FSR=00000001
FMD_OEMIoControl::Not supported IOCtl : 0x10303FF

查看coredll.map,

 0001:0001e52c       HeapCreate                 1001f52c f   coredll_ALL:heap.obj
 0001:0001e668       Int_HeapCreate             1001f668 f   coredll_ALL:heap.obj
 0001:0001e6c8       CeHeapCreate               1001f6c8 f   coredll_ALL:heap.obj
 0001:0001ebf4       HeapReAlloc                1001fbf4 f   coredll_ALL:heap.obj
 0001:0001ec14       HeapAlloc                  1001fc14 f   coredll_ALL:heap.obj
 0001:0001ec34       HeapAllocTrace             1001fc34 f   coredll_ALL:heap.obj
 0001:0001ec88       Int_HeapAlloc              1001fc88 f   coredll_ALL:heap.obj
 0001:0001eee8       HeapFree                   1001fee8 f   coredll_ALL:heap.obj
 0001:0001ef08       Int_HeapFree               1001ff08 f   coredll_ALL:heap.obj
 0001:0001f0e0       HeapSize                   100200e0 f   coredll_ALL:heap.obj
 0001:0001f100       Int_HeapSize               10020100 f   coredll_ALL:heap.obj

发现coredll.dll+0x0002006c对应的函数为: Int_HeapFree ,堆资源释放问题,

coredll.dll+0x0001fb04对应的函数为: CeHeapCreate,堆资源创建问题。

追踪程序发现:plastSaveTime = new char[mea_TotalNumber*7+14],在初始化时mea_TotalNumber =0,

导致实际申请容量与想要使用的不一致,这样操作plastSaveTime 时,操作到别的堆空间了,导致释放别的堆资源出错。

 

 

你可能感兴趣的:(WINCE,应用程序)