2009-06-21 5 views
26

Dans Visual Studio, lorsque le débogage, on peut faire glisser le point d'exécution (pointeur d'instruction en cours, point jaune) à un autre endroit dans la méthode actuelle.Pourquoi ne puis-je faire glisser le point d'exécution dans IntelliJ (je peux dans Visual Studio)

Ceci est impossible dans IntelliJ, et certains ont déclaré que c'est généralement impossible en Java. Pourquoi?

+2

Vous venez de poser la même question. La liste associée fonctionne! – axk

Répondre

11

IntelliJ interagit avec une machine virtuelle Java en cours d'exécution via l'interface de débogage Java standard, il peut déboguer des programmes contre différents JDKs. Cela ne permet pas de déplacer le point d'exécution comme vous le décrivez.

Il vous permet de remonter la pile d'appels et d'effectuer à nouveau un appel de méthode. Dans IntelliJ, utilisez la fenêtre des fils pour sélectionner un cadre de pile d'un fil suspendu et revenez-y. Puis continuez le fil pour rappeler la méthode à ce point dans le programme.

Remarque: cela ne fera pas reculer l'état des objets, de sorte que des effets étranges peuvent se produire.

+22

Putain de Visual Studio, pourquoi tu dois être si génial? : P – dialex

+0

Je cherchais des moyens de reprendre le pointeur de débogage au début de la méthode. il n'y a aucun moyen de «rappeler» la méthode. pour moi, j'ai laissé tomber le cadre supérieur et ré-exécuté la fonction. – zinking

-7

Java n'a pas de pointeur d'exécution en cours pouvant pointer vers un morceau de code aléatoire. Java suppose que l'ordre d'exécution est dans le code, pas quelque chose que vous manipuleriez. Peut-être pourriez-vous expliquer pourquoi vous voudriez faire cela et nous pouvons vous faire connaître un autre moyen de réaliser la même chose.

+5

Il est très utile de déboguer :) – ripper234

+0

Pouvez-vous donner un exemple? –

+9

Un exemple serait lorsque vous avez un bug dans le code qui vous empêche d'exécuter plus loin, mais vous n'êtes pas concerné par le moment, alors vous voulez juste sauter cette partie. Ou vous voulez ignorer un morceau de code pour voir ce qui se passerait s'il n'était pas exécuté (par exemple pour prouver une supposition correcte) et vous pouvez le faire sans recompiler le tout. – axk

-2

Vous pouvez indiquer au débogueur de "Exécuter vers la ligne" vers l'avant.

2

Dans Eclipse, si vous modifiez une méthode débogué provoquant le code débogué à être mis à jour la machine virtuelle Java annule l'exécution au premier endroit sûr. Habituellement, c'est la première ligne de cette méthode.

Il est très utile dans un scénario de débogage.

Questions connexes