смещение данных - PullRequest
       9

смещение данных

1 голос
/ 09 декабря 2011

При запуске программы на эмуляторе устройства 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

В соответствии с файлом карты, ПК находится в функции CeHeapCreate().Обратного адреса нет в разделе кода, может быть, в куче.При запуске верификатора приложения для обнаружения проблемы с памятью прерывание данных исчезает, и программа работает нормально.Что вызывает это и как отладить этот случай?

1 Ответ

1 голос
/ 09 декабря 2011

Нам нужно увидеть вызов coredll, который делает test.exe.Обратный адрес (RA) сообщает вам, откуда в вашем приложении поступает вызов, вам просто нужно декодировать его обратно в строку кода .WAG заключается в том, что вы передаете структуру или байтовый массив в вызов API, который не выровнен.Опять же, без кода мы можем только догадываться.

...