I feel like I may be slowly getting on top of the symbian programming API. One thing you have to do is enable the full error codes for leaves and exceptions. There's a SIS file you can download to turn it on (sorry I don't have the link on hand). Then you can look up the errors from untrapped leaves and the system panic codes . Oddly, the term "panic" is used for user level application crashes. These would usually I think be more accurately called exception codes.

Another useful thing I've discovered is the way to grab the current free memory (in bytes). You can do something like this:

TInt memoryfree; HAL::Get(HALData::EMemoryRAMFree, memoryfree); TBuf<99> msg; msg.Format( _L("Free memory is %d"), memoryfree ); RFileLogger::Write(LOG_DIR, LOG_NAME, LOG_MODE, msg); 

Useful eh? You'll need to include hal.h and hal_data.h and link hal.lib. Note that this is NOT well documented! There is a better documented call that does something similar but it's deprecated.

I wish the Symbian API had string support that was more ANSI C++ strings, or just char * strings. I haven't really figured out "descriptors" yet (even though I'm using them...).