Debugger Architecture

You can use JCDK-Simulator, jc-debug-proxy, and an IDE to debug your project.

The prebuilt executable runtime environment, JCDK-Simulator, is run from inside the JCDK Eclipse Plug-in or on the command line. It performs I/O through a socket interface, simulating the interaction between a card reader and a host computer.

Figure 4-1 Debugging Architecture


Debugging Architecture

The Java Debug Wire Protocol (JDWP) used by the IDE is heavy for a small VM such as that provided by the Simulator. Instead, the Simulator uses a lightweight proprietary protocol to provide a minimum set of debugging capabilities. The debugger tool, jc-debug-proxy, translates commands and responses between JCDK-Simulator and the appropriate protocol.

Because JCDK-Simulator, jc-debug-proxy, and the IDE communicate through sockets, you may debug using a remote host. For example, JCDK-Simulator could run on host1, jc-debug-proxy could run on host2, and the IDE could run on host3.

Ports used between the IDE and jc-debug-proxy, and jc-debug-proxy and JCDK-Simulator, are distinguished by the names "listen port" and "remote port".

Note:

The Java Card API is not debuggable. The following message will be displayed when you try to debug the Java Card API: "Source Not Found of SystemClass.systemCode()."