You cannot ship a device connected to the debugger so eventually you will have to cut the cord and run your device standalone. Windows mobile ships a pocket version of Dr Watson that can help evaluate application exceptions that occur while in this unconnected state. Dr Watson already deals with the heavy lifting of logging the exception and providing a debuggable kernel dump – all you need to do is to get these dump files into your release directory for debugging. The default values I like to change are:
HKEY_Local_Machine\System\ErrorReporting\DumpSettings\DumpDirectory = \<storage card name>\DumpFiles
HKEY_Local_Machine\System\ErrorReporting\UploadSettings\DontUpload = 1
Changing these settings will write .kdmp files to your storage card and Watson won’t attempt to upload the files to the Watson server. Additionally, the Watson UI will not be displayed – so don’t be surprised if you no longer see the dialog prompting you to report the errors found. By logging to an external storage card, you can simply remove the card after any Hopper run and view the exceptions that occurred on that device – you will need to look carefully since the DumpDirectory is hidden.
There are additional settings you can play with (like MaxDiskUsage and MaxLogFiles), but in general the Watson documentation is excellent (search for “Error Reporting”) and won’t need repeating here.
Once the kdmp file is in your release directory, it is possible to connect the debugger directly using the PMD (Post Mortem Debugger) available on JetStream for your Windows Mobile partners. The dump provides a snapshot view of the exception including the call stack, disassembly and the register values – basically enough information to solve most program exceptions that may occur on your device.
It took some digging, but I think this is the tool that people are asking about.
Windows CE Dump Viewer
Windows CE log dump tool
I use WinDbg to analyze .kdmp files generated in WM5. It shows well the stack trace and source locations, however I could not manage to work locals/watch windows. Though all my variable symbols are certainly present in .pdb files, the debugger attempts to look at "symbols.pri" which is not generated.
Unable to enumerate locals, Win32 error 318
Private symbols () are required for locals.
Type ".hh dbgerr005" for details.
Hey, I am trying to get the .kdmp file by modifying the registry entries as you have mentioned. I see them modified in the regini.ini also. But I dont see them getting modified in the final image that I download, when i see in the remote registry editor. Can you help me find out the reason?