microsoft / microsoft/vscode-java-debug

Unable to debug Java Card Applet Code using Java Card Simulator.

Open
#1,280 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

ai-triaged breakpoint question
Dominant language
TypeScript
Stars
591
Forks
429
Avg merge
1d 9h
Merged PRs (30d)
19

Description

I am trying to debug a Java Card Project in VS Code, but the breakpoints are not hit.

Environment
  • Operating System: Windows 10.
  • JDK version: 17.0.5 LTS
  • Visual Studio Code version: 1.74.2
  • Java extension version:
  • Java Debugger extension version: 0.47.2022112823
Steps To Reproduce

image

  1. Download and Install Java Card Simulator from Oracle. [Java Card Classic Development Kit 3.0.5u4]
    https://www.oracle.com/java/technologies/java-archive-downloads-javame-downloads.html#javacardkitv305
  2. Download and Extract Sample Java Card Project. [Sample.zip attached.]
  3. Terminal 1: Start the Simulator.
    cd "{Your_Install_Location}\Java Card Development Kit 3.0.5u4\bin}"
    cref_tdual.exe -p 9025 -debugPort 7019
  4. Terminal 2: Launch APDU Tool.
    cd "{Your_Install_Location}\Java Card Development Kit 3.0.5u4\bin}"
    apdutool.bat -p 9025
  5. Load the cap file in Simulator.
    • Copy paste the contents of {Your_Extract_Location}/apdu_scripts/cap-com.sample.script in Terminal-2 and press Enter
  6. Installing the application in Simulator.
    • Copy paste the contents of {Your_Extract_Location}/apdu_scripts/create-com.sample.MyApplet.script in Terminal-2 and press Enter.
  7. Terminal 3: Launch Debug Proxy.
    cd "{Your_Install_Location}\Java Card Development Kit 3.0.5u4\lib"
    java -jar jc-debug-proxy.jar -port 8989 -vmPort 7019 -capPath {Your_Extract_Location}\Sample\deliverables\com\sample\javacard\sample.cap

---- Debugging In VS Code [Doesn't work]-----

  1. Open the Sample project in VS Code.
  2. Start the debug session in VS Code.(Press F5). [A launch.json with correct configurations is already present.]
  3. Open the file src/com/sample/MyApplet.java and set a breakpoint at line 57.
  4. In Terminal-2
    0x00 0xA4 0x04 0x00 0x06 0x89 0x89 0x89 0x89 0x89 0x81 0x7F;
    • Press Enter.
    • The breakpoint at Line-57 should be hit. [This doesn't work.]

---- Debugging with Eclipse for Java [Working] ----------

  1. Open the Sample project in Eclipse.
  2. Select File -> Open Projects From File System -> Select the Sample Directory.
  3. Setup Debug Configuration.
    • Select Run -> Debug Configurations...
    • On Left Panel Select Remote Java Application.
    • In Project Field, Click on Browse and Select Sample.
    • Change the port to 8989
    • Click on Apply then Debug.
  4. Open the file src/com/sample/MyApplet.java and set a breakpoint at line 57.
  5. In Terminal-2
    0x00 0xA4 0x04 0x00 0x06 0x89 0x89 0x89 0x89 0x89 0x81 0x7F;
    • Press Enter.
    • The breakpoint at Line-57 should be hit. [Working]
Additional Informations

Sample.zip

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the breakpoint failure with the Java Card Simulator, Debug Proxy, APDU Tool, and the provided Sample project; compare the VS Code F5 session with the working Eclipse remote-debug session on port 8989. Inspect the existing launch.json and the breakpoint at src/com/sample/MyApplet.java:57. Done means the APDU command consistently stops at that breakpoint in VS Code.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, vscode
Domain
developer-experience, devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.