microsoft / microsoft/vscode-java-debug

Breakpoint on outer loop won't stop when using Resume (F5) after breaking once

Ouverte
#1,407 8 commentaires 0 réactions 1 personne assignée Voir sur GitHub

@testforstephen y travaille déjà.

Depuis le 15/11/2023.

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

Description

When you put a breakpoint on a outer while loop in a method, the debugger break only once instead of for each loop executed. Also, a loop in a if won't work correctly. But if you have an inner loop (loop in a loop), the breakpoint work as expected, so the debugger break after each execution of the inner loop.

Environment
  • Operating System: Windows 10
  • JDK version: 17.0.8
  • Visual Studio Code version: 1.83.1
  • Java extension version: 1.24.0
  • Java Debugger extension version: 0.55.0
Steps To Reproduce

Using this code:
package sandbox;

public class At09Ex05 {
public static void main(String[] args) {
int nb1, nb2, som1, som2;

	som1 = nb1 = 17;
	som2 = nb2 = 7;
	while (som1 != som2) {
		while (som1 < som2) {
			som1 += nb1;
		}
		while (som2 < som1) {
			som2 += nb2;
		}
	}
	System.out.println("Le PPCM de " + nb1 + " et " + nb2 + " est " + som1);
}

}

  1. Place a breakpoint on line : while (som1 != som2) {
  2. Run the debugger and the program stop at the breakpoint
  3. Use Resume (F5)
Current Result

The program run until the end when using F5 on the outer loop

Expected Result

Since the loop should execute a few times, Resume (F5) should stop again at the breakpoint after executing the loop.

Additional Informations

If you do the same test with a brepoint on the while (som1 < som2) { , the behaviour is correct.
If you change while (som1 != som2) { for if (som1 != som2) { then the two inner loops have the problem.

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.

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

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