next up previous
Next: Conclusion Up: Developing for the Symbian Previous: File Transfer

Debugging

The SDK and Symbian web-site advertises on-target debugging using the GNU Debugger GDB[*] or MetroWerks MetroTRK[*]. There is even a patched version of the GDB source code available, but the P800 does not support GDB. And for MetroWerks the following is reported:

MW Ron <mwron@metrowerks.com>
Newsgroups:   discussion.epoc.C++
Date:         Tue, 18 Mar 2003 16:58:44 -0500


  On-device debugging support for the P800 is currently being finalized by 
Sony Ericsson, who have a working version in their lab. We do not have 
control over when this comes to market. Once their final testing is 
complete, you will need to have your phone re-flashed, by Sony Ericsson, 
in order to use this functionality. As soon as this is available, we 
will notify our customers via our website. You can expect that other 
Symbian devices, from other manufacturers, will include MetroTRK 
functionality in late 2003 and throughout 2004 to support on-device 
debugging.

At the time of writing, we have not found more specific informations about the status of debugging support. This means that there is no proper debugging support available, and we had to resort to instrumenting our code with statements that printed debug information to some device.

We experimented with three different approaches for the output device. The first simple one was to write debugging to a file, and read the file via an application on the phone or on the PC via p3nfs. Viewing the file on the phone was slow using the built-in applications and needed swapping between the program being debugged and the viewer. Using p3nfs was not working either as it took some time before the PC recognized updates or they only came block-wise. We do not know which is the case but we did not find it feasible to use this method.

Instead of using a local file we investigated how to get the debugging information shown on another device. Our first attempt was to use the serial port, but found that it was not directly accessible. It was locked by an application on the phone used for synchronization with other devices. Instead we used the same approach but using the infrared port, printing debug information to a Palm Pilot, which was the only other device we had with an infrared port. This was however not optimal. First, the location of the infrared ports meant that the devices had different reading angles, making it very difficult and tedious to watch both screens at the same time. Second, we needed to correlate the time of some of the informations with the time on the PC to use for the graphs.

Finally we found the (undocumented) RDebug-class (in e32svr.h) which has a Print function used to print arbitrary data to the serial port. This makes it possible to read the debugging informations on the PC, using it for timing, recording the information, etc. This is the best debugging solution we have found, and we have had no problems using it.


next up previous
Next: Conclusion Up: Developing for the Symbian Previous: File Transfer
Allan Beaufour Larsen 2003-06-30