The HangRx.exe debugging tool can help you resolve thread priority issues created by Hopper – but does little to empower you to quickly identify issues resulting from Virtual Memory (or the lack thereof). Most Windows Mobile users are already aware that VM is a rare resource and certain programming practices can introduce stability problems as a direct result of running out of VM.
In response, I have created a new logging tool called MemoRx.exe (“Memory Doctor”) that will graphically snapshot VM vitals so issues and problems can be easily and quickly identified visually. This new tool gathers the current state of VM on your device and logs a file to \windows\memoRx.txt (or \release\memoRx.txt if you are connected with KITL) where it can be easily viewed. It should be said that this log is intended to alert the user to any potential problems and does not provide detailed information or solutions to potential VM conflicts. The intent is to allow the user to quickly glance at the report and know if VM is a likely culprit – detailed investigation still requires other memory tools such as devhealth.exe and mi full.
The following sample, abbreviated output from the MemoRx.txt log:
Note how each executable has a slot along the X axis that shows graphically shows VM usage with ASCII type. When a new application is loaded, a new column will be generated and the report will grow in width – up to 32 processes. At the top, the tilde “~” characters represent DLL space that is shared amongst all executables in Slot 0. Below, the dot “.” characters represent VM memory based at 0x0 + VM Base and include stacks, code and heaps. Please note how the dot “.” changes into a pound “#” to flag a conflict between application VM and DLL VM space – this situation can result in an eventual exception and should be investigated.
This tool is being uploaded to the Power Toys section on Jetstream and is appropriate for both Smartphone and PPC platforms. You can run this program either from a storage card or directly from the user store – or you can use the focusApp post below to automate running this tool continually during your Hopper runs to give you a visual clue to VM status on exit.
This is the first of several posts I will focus on Virtual Memory and the common issues our customers have. So keep checking back and thanks for supporting your HoppeRx blog!
Given that these tools are generally available for the people who are running PB or for use with KITL, are the tools available (or can they be made available) for those users who are developing applications and have already run into the VM problems. In an organisation such as ours, the OS development is done at other sites, and we aleready diagnosed a VM problem where the OS is not loading resources into memory. A tool such as this would make reporting OS issues easier to be diagnosed and fixed.