To debug any Node in the Comms Three Plane Architecture, use:
SVG diagrams to see the message traffic. See How to Use ULogger with Comms
Conditional
breakpoints in the ReceivedL
function of the Node.
The extensive re-use of code for states and transitions causes breakpoints in the code for states and transitions to be called many times. These breakpoints may not be effective. Set conditional breakpoints in the ReceiveL functon of Nodes to track the processing of messages within a Node.
General networking - For debugging network
problems, a version of ping and IPConfig are provided with the source
code for Symbian platform and built into test builds. To build manually,
the code is located in \networking\inetutil\
.
IPSec, IPSec6, IPSecPol - These components use Flogger. For more information see Textual Logging.
PPP, RAW IP and other NIF 's - Full packet logging
of each PPP frame is available from the PPP component. Enable the
CDU tags and extract the binary output from the log file using the splitlog.bat
program. For more information see Textual Logging. This binary output can then be loaded into a packet viewer program
such as the freeware Wireshark (formerly Ethereal). For more information
see PPP Ini File: [log]. The RAW IP NIF will similarly log, using
the CDU tag "LOG RawIP *
", in the Wireshark-compatible pcap format. The Ethernet NIF uses the "LOG TCPDump
*
" tags.
The TCPdumping example code hooks
into the TCP/IP stack and dumps the TCP traffic in pcap format, which
is suitable for loading into Wireshark. This is useful when using
a NIF which does not provide its own logging. The TCPdumping executable
is only built in test builds, so to build it manually refer to the
source code located at networking\examplecode\tcpdumping
.
Tcpip6 - The logs from this component are some
of the most useful when debugging. Note that some versions of this
component use Flogger, while others use CDU with the tags "LOG inet6 *
".
Etel - The Telephony Server can record and play back the IPC messages passing through the server. It can be installed on the device to record the messages, and then the recording can be processing in a debugging environment without the need for the specific device or network environment. This is very useful for reproducing defects.