The Simple Debugger

Note: The Simple Debugger is designed as an example. Should you require trace functionality, use the Trace Logger.

The Simple Debugger can be used as an execution trace library for embedded devices that do not have a console. This version of the Simple Debugger is based on our EventHandler whitepaper. It is recommended that you read the whitepaper before working with this example.

We currently provide two clients to the SimpleDebugger server code:

The source code to the Java application is in the "java" subdirectory. We provide a pre-compiled Java Web-Start Client that you can download from

Rich Client Browser Interface

The Rich Client browser application should show a window similar to the one shown in the picture below:

The buttons, checkboxes, and combo box above send commands to the server implementation of the Simple Debugger. The EventHandler Interface file (ehi) in src/ SimpleDbg.ehi contains declarations for all commands sent between the client and the server and vice versa. Interface SimpleDbgClient2ServerIntf lists the functions the client can call in the server:

  1. The Disable/Enable Trace button sends command 'setTraceButtonState' to the server.
  2. The Erase Trace button erases the text in the bottom frame.
  3. The Trace Level combo box sends command 'setTraceLevel' to the server. A trace value less than 4 masks out the HttpTrace printouts.
  4. Enable/Disable the HttpTrace library. Please see HttpTrace for more information.
  5. Connect or Close the persistent EventHandler connection. The connection is initially connected when the Rich Client is loaded into the browser.
  6. The bottom frame is where the trace text is shown.

Suggested Exercises

An EventHandler application is distributed with a client containing the user interface (UI) and the server implementation containing the logic. The server implementation is a shared resource since multiple clients can normally connect to the server implementation.

We have deliberately put in a restriction in the SimpleDebugger server implementation. The server implementation is accepting one client only, thus the SimpleDebugger server code is not designed as a shared resource.

We suggest that you try to do a few improvements to the Simple Debugger after you have familiarized yourself with the code.