microsoft / microsoft/vscode-java-debug

Cannot debug JDK17 itself with "Debugger for Java" v0.49.1

オープン
#1,330 コメント 10 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

ai-triaged bug question
主要言語
TypeScript
スター
591
フォーク
429
平均マージ
1日 9時間
マージ済み PR(30日)
19

説明

I'm building and debugging OpenJDK 17 on Windows 11. I'd like to debug it with VSCode.
I submitted the issue #1285 before for other version of extensions, but now Java Debugger extension seems totally broken.

  1. I have disabled "build before launch" for both User and Workspace, but every time I run the debug configuration (see below), I see the message about "Debug 'Launch Java Program': compiling..." and then "Build failed, do you want to continue?" with a lot of compilation errors.
  2. It can debug source of my tests, but it cannot step in JDK classes. It seems like it cannot find neither source files, not debug info for fresh built fast-debug JDK.
  3. If I open one of JDK java-files in VSCode and try run the debugger (the same configuration), it shows "Debug 'Launch Java Program': compiling...", and may hang until OutOfMemory error occurs.
  4. I have set "java.configuration.runtimes" option to manually downloaded JDK, but, in TaskMonitor, I still see Java.exe process running from "C:\Users\username\.vscode\extensions\redhat.java-1.17.0-win32-x64\jre\17.0.6-win32-x86_64\bin". It looks like scanning my JDK source files, but cannot do this properly. It consumes a lot of memory (1GB+), and reports about OutOfMemory error in VSCode time to time.

Is it really broken now?
Is my configuration wrong maybe?

Environment
  • Operating System: Windows 11
  • JDK version: 17
  • Visual Studio Code version: 1.77.3
  • Extension Pack for Java: v0.25.10
  • Debugger for Java: v0.49.1
  • Language Support for Java(TM) by Red Hat: v1.17.0

My setting.json:

    "java.configuration.runtimes": [
        {
            "default": true,
            "name": "JavaSE-17",
            "path": "c:\\Users\\username\\work\\jdk"
        }
    ]
    "java.debug.settings.onBuildFailureProceed": false,
    "java.debug.settings.forceBuildBeforeLaunch": false

My launch.json:

        {
            "type": "java",
            "name": "Launch Java Program",
            "request": "launch",
            "cwd": "${workspaceFolder}\\jdk\\myjdk\\MyJdkTest\\MyJdkTest",
            "mainClass": "jdk.test.lib.myjdk.MyJdkTest",
            "vmArgs": "-ea <other vm args>",
            "args": "<java test args>",
            "classPaths": [
                "${workspaceFolder}\\classes\\jdk\\myjdk\\MyJdkTest\\MyJdkTest.d",
                "${workspaceFolder}\\classes\\test\\lib"
            ],
            "javaExec": "c:/Users/username/work/myjdk/build/windows-x86_64-server-fastdebug/jdk/bin/java.exe",
        },

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

まず、提供された settings.json と launch.json を使用し、Windows 11 上で指定された OpenJDK 17、VS Code、拡張機能のバージョンを使って動作を再現します。設定されたランタイム、build-before-launch の動作、JDK ソースのステップ実行、Java プロセスのメモリ使用量を確認します。失敗を切り分け、動作するデバッグ構成または拡張機能の具体的な不具合を特定できれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java
領域
devtools
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。