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 時,操作到別的堆空間了,導致釋放別的堆資源出錯。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章