microsoft / microsoft/vscode-java-debug
Cannot check array[0].lengh variable in debugger
未关闭
还没有人认领这个 Issue。
ai-triaged
bug
evaluation
- 主要语言
- TypeScript
- 星标
- 591
- 派生
- 429
- 平均合并
- 1 天 9 小时
- 30 天内合并 PR
- 19
描述
Hi everyone.
I have an issue when trying to debug a program that contains 2D array. If I try to put breakpoints checking for array[0].length, it fails with:
Breakpoint condition 'array[0].length > 0' error: Cannot evaluate because of compilation error(s): length cannot be resolved or is not a field.
After somme diggining, it seems that the debugger considers the array[0] object as a double:
Breakpoint condition 'array[0][0] == 0' error: Cannot evaluate because of compilation error(s): The type of the expression must be an array type but it resolved to double.
Do you have any idea on how to solve this?
Thanks
Nicolas
Environment
- Operating System: Ubuntu 22.04.3 LTS
- JDK version:
openjdk 19.0.2 2023-01-17
OpenJDK Runtime Environment (build 19.0.2+7-Ubuntu-0ubuntu322.04)
OpenJDK 64-Bit Server VM (build 19.0.2+7-Ubuntu-0ubuntu322.04, mixed mode, sharing)
- Visual Studio Code version:
Version: 1.81.1
Commit: 6c3e3dba23e8fadc360aed75ce363ba185c49794
Date: 2023-08-09T22:18:39.991Z
Electron: 22.3.18
ElectronBuildId: 22689846
Chromium: 108.0.5359.215
Node.js: 16.17.1
V8: 10.8.168.25-electron.0
OS: Linux x64 6.2.0-26-generic snap
- Java extension version: Java Extension Pack (v0.25.13)
- Java Debugger extension version: v0.53.0
Steps To Reproduce
- Add in Watch
array.length - Add in Watch
array[0].length - Add coniditional breakpoint in line 15:
array[0].length > 0
Current Result
Breakpoint condition 'array[0].length > 0' error: Cannot evaluate because of compilation error(s): length cannot be resolved or is not a field.
Expected Result
Debugger should stop on breakpoint without error
Files
Code source: TestDebugger.java.txt
Log file:
client.log.2023-08-24.txt
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
首先在 VS Code 中运行附带的 TestDebugger.java.txt 复现,并结合调试器对 array.length 和 array[0].length 的表达式求值行为检查 client.log.2023-08-24.txt。监视表达式以及涉及 array[0].length 的条件断点能够无错误地求值,即表示完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- java, typescript, vscode
- 领域
- devtools
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 45/100