5 Replies Latest reply on Jul 12, 2016 6:33 AM by Marcin Koscielniak

    MC3200 .NET application crash with DataAbort

    Marcin Koscielniak

      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 <CEMobile.exe>  
      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