在Wince 5.0 Arm设备仿真器上运行程序时,它总是报告数据未对齐。异常就像
Data Abort: Thread=8db5e6f4 Proc=8c24cb60 'test.exe'
AKY=00001001
PC=03f91cfc(coredll.dll+0x00021cfc)
RA=1a12a988(test.exe+0x0011a988)
BVA=0000001e
FSR=00000001
根据映射文件,PC处于
CeHeapCreate()
函数中。返回地址不在代码段中,可能不在堆中。运行应用程序验证程序以检测内存问题时,数据中止消失,程序正常运行。
是什么原因造成的,以及如何调试这种情况?
最佳答案
我们需要查看对test.exe进行的coredll调用。寄信人地址(RA)告诉您调用来自何处,您只需要decode it back to a line of code即可。 WAG表示您要将结构或字节数组传递给未对齐的API调用。同样,没有代码,我们只能猜测。
关于c++ - wince数据未对齐,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8441620/