microsoft / microsoft/vscode-java-debug

Can't step over breakpoint on lambda expression/step filters ignored

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

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

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

説明

If you set a breakpoint on a line of code containing a lambda expression, attempts to step over the code will result in a step into the code. If the lambda expression is a function of the standard library and your step filters are enabled, you will still have to trudge through many .class files.

Environment
  • Operating System: Windows 10
  • JDK version: 1.8.0_181
  • Visual Studio Code version: 1.37.0-insider (system setup)
  • Java extension version: 0.7.1 (assuming this refers to the Java Extension Pack)
  • Java Debugger extension version: 0.20.0
Steps To Reproduce
  1. Extract this to a folder and open that folder in vscode.

  2. Set breakpoints on lines 4 and 10 of test.java

  3. Debug test.java with the provided launch.json

  4. Repeatedly step-in until you have reached line 10. Observe that the debugger has not forced you to view the HashMap.class file or any of the standard libraries.

  5. Attempt to step-over line 10. Observe that the debugger has stepped-in.

  6. Attempt to step-over again. Observe that you are now viewing the HashMap.class file, despite the settings in launch.json, which should have prevented this.

Current Result

Stepping over a lambda expression with a breakpoint will step in, even if your step filters should prevent this.

Expected Result

Stepping over a lambda expression with a breakpoint should step over the expression. Regardless, step filters should prevent viewing of standard libraries.

Additional Informations

I already tried this on the current stable build of vscode - same problem there as well.

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

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

はじめの一歩

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

調査の方向性

test.java と提供された launch.json で問題を再現し、4 行目と 10 行目にブレークポイントを設定して、lambda をステップオーバーします。HashMap.class への実際の進入と、想定されるステップフィルターの動作を比較します。lambda をステップオーバーし、設定どおりに標準ライブラリのクラスを回避できれば完了です。

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

評価

技術スタック
java, typescript, vscode
領域
devtools
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
42/100

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

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