microsoft / microsoft/vscode-java-debug

Cannot check array[0].lengh variable in debugger

Ouverte
#1,379 3 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

ai-triaged bug evaluation
Langage dominant
TypeScript
Étoiles
591
Forks
429
Merge moyen
1 j 9 h
PR mergées (30 j)
19

Description

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
  1. Add in Watch array.length
  2. Add in Watch array[0].length
  3. 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.

Screenshot from 2023-08-24 12-53-09

Expected Result

Debugger should stop on breakpoint without error

Files

Code source: TestDebugger.java.txt
Log file:
client.log.2023-08-24.txt

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par exécuter dans VS Code la reproduction jointe TestDebugger.java.txt et inspectez client.log.2023-08-24.txt en parallèle du comportement du débogueur lors de l’évaluation de array.length et de array[0].length. Le travail est considéré comme terminé lorsque les expressions surveillées et le point d’arrêt conditionnel impliquant array[0].length sont évalués sans erreur.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
java, typescript, vscode
Domaine
devtools
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.