microsoft / microsoft/vscode-java-debug

Can not step into method

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

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

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

説明

This was run on Linux.
VsCode Version: 1.95.2
language server version: 1.36.0
vscode-java-debug version: 0.58.1

  1. Clone https://github.com/eclipse-jdtls/eclipse.jdt.ls,
  2. start into debug mode
  3. Set debug at 164
    https://github.com/eclipse-jdtls/eclipse.jdt.ls/blob/f155e1fc90618b558899c3722606feccfc89e210/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/managers/ProjectsManager.java#L155-L179
  4. And try to step into that method with "SHIFT" + step into shortcut and select that method

I have only the jdtls logs.

JDTLS Logs

[Error - 7:03:10 PM] Nov 12, 2024, 7:03:10 PM (java.util.stream.ReferencePipeline<P_IN,P_OUT>, java.util.stream.AbstractPipeline<?,P_OUT,?>, java.util.stream.StreamShape, int) {key=Ljava/util/stream/ReferencePipeline$21225;.(Ljava/util/stream/ReferencePipeline;Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;ILjava/util/function/Consumer;)V} [in <anonymous> [in ReferencePipeline$15.class [in java.util.stream [in <module:java.base>]]]] does not exist
(java.util.stream.ReferencePipeline<P_IN,P_OUT>, java.util.stream.AbstractPipeline<?,P_OUT,?>, java.util.stream.StreamShape, int) {key=Ljava/util/stream/ReferencePipeline$21225;.(Ljava/util/stream/ReferencePipeline;Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;ILjava/util/function/Consumer;)V} [in <anonymous> [in ReferencePipeline$15.class [in java.util.stream [in <module:java.base>]]]] does not exist
Java Model Exception: Error in Java Model (code 969): (java.util.stream.ReferencePipeline<P_IN,P_OUT>, java.util.stream.AbstractPipeline<?,P_OUT,?>, java.util.stream.StreamShape, int) {key=Ljava/util/stream/ReferencePipeline$21225;.(Ljava/util/stream/ReferencePipeline;Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;ILjava/util/function/Consumer;)V} [in <anonymous> [in ReferencePipeline$15.class [in java.util.stream [in <module:java.base>]]]] does not exist
	at org.eclipse.jdt.internal.core.JavaElement.newNotPresentException(JavaElement.java:546)
	at org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:589)
	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:292)
	at org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:278)
	at org.eclipse.jdt.internal.core.BinaryMethod.getParameterNames(BinaryMethod.java:287)
	at org.eclipse.jdt.ls.core.internal.handlers.InlayHintVisitor.getParameterNames(InlayHintVisitor.java:215)
	at org.eclipse.jdt.ls.core.internal.handlers.InlayHintVisitor.resolveInlayHints(InlayHintVisitor.java:165)
	at org.eclipse.jdt.ls.core.internal.handlers.InlayHintVisitor.visit(InlayHintVisitor.java:78)
	at org.eclipse.jdt.core.dom.ClassInstanceCreation.accept0(ClassInstanceCreation.java:293)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3312)
	at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:3360)
	at org.eclipse.jdt.core.dom.ReturnStatement.accept0(ReturnStatement.java:128)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3312)
	at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:3383)
	at org.eclipse.jdt.core.dom.Block.accept0(Block.java:128)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3312)
	at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:3360)
	at org.eclipse.jdt.core.dom.MethodDeclaration.accept0(MethodDeclaration.java:676)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3312)
	at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:3383)
	at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:497)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3312)
	at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:3383)
	at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:257)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3312)
	at org.eclipse.jdt.ls.core.internal.handlers.InlayHintsHandler.inlayHint(InlayHintsHandler.java:81)
	at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.lambda$56(JDTLanguageServer.java:1189)
	at org.eclipse.jdt.ls.core.internal.BaseJDTLanguageServer.lambda$0(BaseJDTLanguageServer.java:87)
	at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:690)
	at java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:527)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:507)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1458)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:2034)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:189)

Nov 12, 2024 7:04:27 PM com.microsoft.java.debug.core.UsageDataSession recordResponse
WARNING: abnormal response

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

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

はじめの一歩

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

調査の方向性

記載された VS Code、language server、vscode-java-debug のバージョンを使用して Linux のケースを再現し、ProjectsManager.java の 155-179 行目から開始します。記録された InlayHintVisitor および Java Model Exception のスタックを読み、その後、失敗した検索が選択したメソッドへのステップインにどのような影響を与えるかを追跡します。選択したメソッドを、報告された Java モデルエラーなしで選択してステップインできれば完了です。

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

評価

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

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

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