MC3200 .NET application crash with DataAbort

// Expert user has replied.
M Marcin Koscielniak 3 years 7 months ago
34 2 0

I've got seriuos problem with MC3200 series devices. My application crash on them with uncatchable DataAbort exception inside .NET dlls execution chain. RTLog gives me only:
 
3654520, 2016-05-17, 08:19:14, 39ed0136h, 382401deh, Exception 'Data Abort' (0x4): Thread-Id=382401de(pth=a3dff000), Proc-Id=39ed0136(pprc=a393a430) 'CEMobile.exe', VM-active=39ed0136(pprc=a393a430) 'CEMobile.exe'   3654521, 2016-05-17, 08:19:14, 39ed0136h, 382401deh, PC=4269d840(netcfagl3_5.dll+0x0000d840) RA=4269d768(netcfagl3_5.dll+0x0000d768) SP=00bafc40, BVA=00000010   3654522, 2016-05-17, 08:19:14, 39ed0136h, 382401deh, #$# Exception 0xC0000005    3654523, 2016-05-17, 08:19:14, 39ed0136h, 382401deh, #$# Thread procedure: mscoree3_5.dll!0x00048D94 (in dll)   3654524, 2016-05-17, 08:19:14, 39ed0136h, 382401deh, #$# PC: netcfagl3_5.dll!0x0000D840 (in dll)   3654525, 2016-05-17, 08:19:14, 39ed0136h, 382401deh, #$# Call stack top   3654526, 2016-05-17, 08:19:14, 39ed0136h, 382401deh, #$# netcfagl3_5.dll!0x0000D840 (in dll)   3654527, 2016-05-17, 08:19:14, 39ed0136h, 382401deh, #$# mscoree3_5.dll!0x000422EC (in dll)   3654528, 2016-05-17, 08:19:14, 39ed0136h, 382401deh, #$# netcfagl3_5.dll!0x000077EC (in dll)   3654529, 2016-05-17, 08:19:14, 39ed0136h, 382401deh, #$# 0x015323C0   3654530, 2016-05-17, 08:19:14, 39ed0136h, 382401deh, #$# Call stack bottom   3654531, 2016-05-17, 08:19:14, 39ed0136h, 382401deh, #$# Exception was not handled   3654532, 2016-05-17, 08:19:19, 0a810936h, 0a2c0c6eh, eMscript TimeStamp: 5/17/2016 8:19:19 AM   
I'm pretty sure that problem is related with garbage collection and freeing up memory. In my application there is an initial form with Login button. Rest of application runs Inside its click event and presents to user many quite complicated dynamic forms. Data underneath is synchroznized using HTTP calls to remote server. After some time of work when user logout and program flow escapes Login button click handler application crashes (sometimes with additional error raporting window). I believe this is moment when large amount of memory is freed up and something misbehave. During long app session I've noticed that Memory Load slowly increasing (more is allocated then GC).
 
I'm able to repeat crash almost every time with scenario:
Open app -> Login -> Reach one of dynamic forms -> Run loop show-OK with MessageBox by keeping Enter key pressed on one of input TextBoxes for 1 minute -> Close dynamic form -> Logout -> Crash
 
When I skip MessegeBox loop step and just open dynamic form nothing bad happend. It seems like some wndproc fluctuations.
 
To minimize influance on application I've cut off some of its parts like battery/wlan notifications, custom controls painting, kiosk mode (hiding task bar), pinvokes and so on. Problem still exists.
 
Currently app is successfully running on variuos Windows CE devices without any problem (CE 5-7), even on MC9200 series with CE7. Ive only noticed that version of compact framework is different.between series.
 
Mayby my application is doing something odd for MC3200. I've checked many times disposing logic of created forms. Everything looks ok. I've also tried to create sample program to reproduce problem but without any luck.
 
My device:

MC32N0 (MC32N0-GL4HCLE0A)
.NET Compact Framework 3.5.12128.0
OS Version 07.002824
OEM Symbol MC32N0G 10.51.17

Please Register or Login to post a reply

2 Replies

M Marcin Koscielniak

Finally I've found reason of described data abort problem. In my case it was huge number of dynamically created and later orphaned Label controls. In some legacy code part there was user control which dynamically creates many labels and displays them to user as key value data. They weren't properly disposed and from native point of view they were still active. When user logout those controls somehow influence underneath everything else and leads to application crash (reusing memory or broken managed-native world relationship). It looks like that in other devices problem is silently handled and probably leads to subtle memory leaks which weren't identified through years of usage.
So to sum up, finding solution for data abort problem require revisiting your control disposing logic.

H Hao-Fan Ma

Hi Marcin,

Have you solve the issue? I have the same issue when run applicaiton on MC32N0, the appliation can work well on MC3190 and other WinCE 7.0 devices.

Thanks a lot!
Max

CONTACT
Can’t find what you’re looking for?