Windows Mobile Troubleshooting – How to log like a developer

After writing up my last blog article about Windows Mobile troubleshooting and logging utilities (see it again here), I was more closely at the lookout for other tools and tricks that might help assist in a similar fashion.. Of course I found some more good additional information and have included it in this round.. :-)   Especially the memory management information I don’t think has been that well communicated in the past..

.NET Compact Framework Logging

On Steve Hegenderfer and Reed Robinson’s excellent blog Reed posted a great article about how to enable .NET CF loader logs and what to look out for. Specifically referencing this MSDN information on how to enable the logging: http://msdn.microsoft.com/en-us/library/ms229650.aspx. It is all controlled in specific registry keys on the device to enable 6 different flavors of .NET CF logging: “Interop”, “Error”, “Loader”, “Network”, “Finalizer”, or “Trace”.

The Power Toys for .NET Compact Framework v3.5 download gives you additional tools to make this easier. One is the Remote Logging Configuration Tool:

image

So the most interesting for non-developers trying to troubleshoot .NET CF applications is probably the “Loader” logging. This is where you can see if the application even makes it off the ground and why. As Reed suggests in the article I mentioned it could be referencing a .NET assembly not present on the device for whatever reason..

Additional details on how to read the “Loader” logging can be found here: http://msdn.microsoft.com/en-us/library/ms229667.aspx.

File System Logging

This is a type of extreme logging that can really slow down a working operating system. But it can also show you exactly what is going on at the file I/O level. Specifically what files are being accessed or written to. This could be useful to trace back missing files or folders, or figuring out the last file access a specific application did before failing.

I only recently found a tool called MobileMon v0.5 by Brian Dunn. His website, http://www.mobilmon.com/, has more information and you can download the .CAB file there.

Basically you can install and run it in the background while it logs file activity.

imageimage

Once you are done you can save it to a log file. Be aware however that the file name “mobilmon.log” may be hard to open on the device itself unless you install a tool (Like Voyager or Total Commander) to rename the file to mobilmon.txt. Then you can open it with the native Word Mobile.

imageimage

Memory Management and Monitoring

Another important area of concern for current Windows Mobile troubleshooting is available memory on the device.  Memory leaks, multiple running applications, and garbage heaps can all attribute to doing frequent soft-reboots to get a device functional again. A little known fact that I wasn’t fully aware of is that only 32 applications (actually processes) can run at the same time and each can at a maximum access 32mb of virtual memory..

An excellent resource of a virtual memory management overview is William Blanke’s article: http://www.codeproject.com/KB/mobile/VirtualMemory.aspx

In it he also has a small (12Kb) Virtual Memory tool (must register to download, the compiled .exe in included with the source code) you can run and visually see available memory (in red) for each of the 32 process slots.

imageimage

Issue #1: One key thing apart from seeing how many of the slots are being used and if they are full, is finding the “device.exe” process. This process is responsible for loading up all the device drivers and William points out the potential issues if memory is low for this slot. Specific device features may simply not work.

Issue #2: Another area of concern could be applications that load up .DLL files. These can be loaded up in *any* processing slot and can be accessed by any process. This can be bad if your process or application running in the slot needs the memory and doesn’t use the particular DLL.

However William doesn’t address that in Windows Mobile 6.1 specific changes were made to better accommodate DLL files over 64Kb. These will now be loaded into specific slots higher and away from the process slots. Thus freeing up application space and reducing this potential worry. Please see more information on this 6.1 feature from Doug Boling here.

How sure if anything has/will change in Windows Mobile 6.5 as of yet. What we can look forward to is Windows Mobile 7.0 (which is based upon Windows CE 6.0) and it’s larger scale advanced memory management, explained in more detail here or here. But basically a little like Windows XP, and a limit of 32K processes and 2GB per process, compared to 32 and 32Mb per process. :-)

Issue #3: Careful on the usage of storage cards to install or run applications from. If the device goes into hibernation or sleep mode, it could power down the storage card and render any application housed there non-functional. See more tips here.

Some older reference links on Windows Mobile memory management:
- RAM, ROM and Task Managers
- How WM 5.0 Shell Handles Low Memory Situations
- Memory Management on WM 6.x
- MSDN Webcast: Memory Management for Windows Mobile
- DumpMem Utility

If you are using a Motorola/Symbol ruggedized device you also may want to ask your Motorola rep about their “Private SDK” and a tool called the “Remote Memory Viewer”. It may also be beneficial as Raffaele Limosani states here..

Hope this article further assists in troubleshooting Windows Mobile issues you might run into!

|\\arco..
http://marco.blogsite.org


Upcoming Microsoft Webcasts on Device Management & Security

A quick heads up on some interesting new Microsoft webcasts coming up early next month on Windows Mobile Device Management and Security that may be of interest to many of you:

TechNet Webcast: Windows Mobile 6.1 and Mobile Device Manager 2008: The Gateway to Your Corporate Network (Level 200)

Tuesday, April 7, 2009
10:00 A.M.-11:00 A.M. Pacific Time

TechNet Webcast: Management Lockdown of Windows Mobile Devices (Level 300)Thursday, April 9, 2009
11:30 A.M.-12:30 P.M. Pacific Time

Register now and get it on your calendar! :-)

|\\arco..


Windows Mobile 6.1.x Upgrades and Build Levels – March 11, 2009

I’ve been compiling a running alphabetical list of which devices now have official supported upgrades available for them since the summer of 2008. This may be useful for many of you as well implementing SCMDM and researching which devices are compatible.

Several links fixed, and several devices purchased with WM 6.1.x builds now listed as reference as well. Interesting to see the slow uptake of devices having the 6.1.4 build finally that has the Internet Explorer Mobile 6 (IE6on6).

Included is the specific OS/AKU build for each device for SCMDM 2008 SP1 support.

MO/OEM OS/AKU Build Number
Alltel:
Alltel HTC PPC8600 WM 6.1 ?
Alltel HTC Touch WM 6.1 ?
Alltel Palm Treo Pro WM 6.1.4 w/AKU 1.4.4 Build 20765.1.4.4?
ASUS:
ASUS PDA Phone P527 WM 6.1 w/AKU 1.0.4 Build 19214.1.0.4
ASUS PDA Phone P750  Patch WM 6.1 ?
ASUS P565 WM 6.1 ?
AT&T:
AT&T Motorola Q9h WM 6.1 w/AKU 1.0.2? Build 19209.1.0.2?
AT&T Tilt WM 6.1 w/AKU 1.0.4 Build 19214.1.0.4
AT&T Pantech C810 Duo WM 6.1 w/AKU 1.1.8 Build 19597.1.1.8
AT&T BlackJack II (SGH-i617) WM 6.1 w/AKU 1.0.1 Build 19208.1.0.1
AT&T Fuze (HTC Touch Pro) WM 6.1 w/AKU 1.2.6 Build 19971.1.2.6
AT&T Epix (SGH-i907) WM 6.1 w/AKU 1.3.2 Build 20276.1.3.2
AT&T LG Incite (CT810) WM 6.1 w/AKU 1.2.8 Build 19974.1.2.8
Bell:
Bell HTC Touch WM 6.1 ?
Fido:
Fido BlackJack (SGH-i616) WM 6.1 w/AKU 1.0.1 Build 19208.1.0.1
HTC:
HTC TyTN II (unlocked) WM 6.1 w/AKU 1.0.3 Build 19212.1.0.3
HTC Touch Diamond (unlocked) WM 6.1.4 w/AKU 1.4.3 Build 20764.1.4.3
HTC Touch Pro (unlocked) WM 6.1.4 w/AKU 1.4.3 Build 20764.1.4.3
HTC Touch Cruise WM 6.1 ?
HTC Touch Dual WM 6.1 ?
HTC Touch HD WM 6.1.4 w/AKU 1.4.0 Build 20757.1.4.0
i-mate:
Ultimate 6150 WM 6.1 w/AKU 1.2.1 Build 19959.1.2.1
Ultimate 8150 WM 6.1 w/AKU 1.2.1 Build 19959.1.2.1
Ultimate 8502 WM 6.1 w/AKU 1.1.2 Build 19585.1.1.2
Ultimate 9502 WM 6.1 w/AKU 1.1.2 Build 19585.1.1.2
JAMA 101 (Pending)
Intermec:
Intermec CN3 WM 6.1 w/AKU 1.1.1 Build 19581.1.1.1
Intermec CK3 WM 6.1 ?
Motorola (Symbol):
Motorola MC55 WM 6.1 w/AKU 1.1.1 Build 19581.1.1.1
Motorola MC70 (BSP 0.01.09.00) WM 6.1 w/AKU 1.1.5 Build 19590.1.1.5
O2:
O2 XDA Stellar (HTC TyTN II) WM 6.1 ?
O2 XDA Orbit 2 (HTC Touch Cruise) WM 6.1 ?
O2 XDA Mantle (HTC P6500) WM 6.1 ?
Orange:
Orange HTC TyTN II WM 6.1 ?
Orange HTC P6500 WM 6.1 ?
Palm:
Palm Treo Pro (unlocked/GSM) WM 6.1 w/AKU 1.0.5 Build 19216.1.0.5
Rogers:
Rogers BlackJack (SGH-i616) WM 6.1 w/AKU 1.0.1 Build 19208.1.0.1
Samsung:
Samsung SCH-i200 WM 6.1 w/AKU 1.0.4 Build 19214.1.0.4
Samsung BlackJack II (SCH-i617) WM 6.1 w/AKU 1.0.1 Build 19208.1.0.1
Samsung SCH-i760 WM 6.1 w/AKU 1.0.0 Build 19202.1.0.0
Samsung Omnia SCH-i900 (non-US) WM 6.1 w/AKU 1.3.1 Build 20270.1.3.1?
Samsung SGH-i780
(IT, NL, Nordic, Singapore, UK only)
WM 6.1 ?
Sprint:
Sprint Motorola Q9c WM 6.1 w/AKU 1.0.2? Build 19209.1.0.2?
Sprint Mogul WM 6.1 w/AKU 1.0.2 Build 19208.1.0.2
Sprint HTC Touch WM 6.1 w/AKU 1.0.1 Build 19208.1.0.1
Sprint Samsung Ace (SPH-i325) WM 6.1 w/AKU 1.0.0 Build 19202.1.0.0?
Sprint HTC Touch Diamond
(Pending)
WM 6.1.4 w/AKU 1.4.3? Build 20764.1.4.3?
Sprint Palm Treo 800w WM 6.1 w/AKU 1.0.5 Build 19216.1.0.5
Sprint Palm Treo Pro WM 6.1.4 w/AKU 1.4.4 Build 20765.1.4.4
Telus:
Telus HTC Touch WM 6.1 ?
Telus HTC S720 WM 6.1 ?
Telus HTC P4000 WM 6.1 ?
Verizon:
Verizon Samsung SCH-i760 WM 6.1 w/AKU 1.0.0 Build 19202.1.0.0
Verizon UStarcom XV6800 WM 6.1 w/AKU 1.0.3 Build 19212.1.0.3
Verizon HTC XV6900 WM 6.1 w/AKU 1.0.3 Build 19212.1.0.3
Verizon Motorola Q9c WM 6.1 w/AKU 1.1? Build 19704.1.1.50
Verizon HTC Touch Pro WM 6.1 w/AKU 1.2.7 Build 19972.1.2.7
Verizon Samsung Omnia (SGH-i910) WM 6.1 w/AKU 1.3.1 Build 20270.1.3.1
Verizon Samsung Saga (SCH-i770) WM 6.1 w/AKU 1.3.2 Build 20276.1.3.2
Vodafone:
Vodafone v1615 WM 6.1 w/AKU 1.0.3 Build 19212.1.0.3

If you know of others, updates or corrections, please let me know!

|\\arco..
mnielsen(at)enterprisemobile.com
http://marco.blogsite.org


Mobile Security Resources

Windows Mobile security best practices are a key component of Enterprise Mobile’s expertise and services, but recently we’ve been much more vocal about it! First off, there’s the excellent WM Application Security White Paper that my colleague Dave Field just published. Here’s a brief synopsis:

This technical paper recommends how enterprises can take advantage of the powerful security features of Windows Mobile to defend against malicious and unsupported application use. Taking a very pragmatic approach, the paper describes how various features work and how to implement them to protect devices based on Windows Mobile 5.0, 6.0 and 6.1.

I highly recommend it for any IT professional who’s interested in Windows Mobile security. Dave has put incredible detail into this paper, making it invaluable for an organization who is currently using (or planning to deploy) Windows Mobile devices and applications.

Next up, there’s an interesting Network World article by John Cox about Mobile browser security that Dave and I are quoted in.  The article focuses on the impact that a new generation of mobile web browsers will have on how enterprise IT organizations handle mobile device security.  John sums up the three key areas that enterprises should focus on:

IT departments, according to experts, need to focus on three areas: assessing the security architecture and features in the mobile browser and the underlying operating system; working with users on smart and safe browsing practices; and creating a solid handheld device management system.

In fact, choosing a mobile platform with a strong and flexible security model in hand with a solid device management system can help you minimize the headaches that users have to endure. With those first two handled, educating users on smart and safe browsing practices is something that is applicable to both traditional desktop web browsers as well as the new crop of full-featured mobile browsers. Read the full article, titled “Mobile browsers bring new security headaches” now for more information.