113 votes

Lorsque vous utilisez le débogueur Java dans IntelliJ, que signifie "Drop Frame" ?

J'ai utilisé le débogueur Java dans IntelliJ 8 et j'ai remarqué un bouton intitulé "Drop Frame". Quelqu'un sait-il à quoi il sert ? Comment/pourquoi cela serait-il utilisé/utile ?

154voto

Daniel Schneller Points 6417

La pile d'appels de votre application peut être visualisée dans le débogueur. Grâce à la fonctionnalité "Drop Frame", vous pouvez "revenir" à un cadre de pile précédent, ce qui revient en quelque sorte à remonter dans le temps. Cela peut être utile pour réintégrer une fonction si vous avez manqué un point critique que vous souhaitez revoir.

Comme le suggère le nom "Stack Frame", les modifications déjà apportées à l'état global (comme les variables statiques, les modifications des valeurs des champs et autres) ne seront pas annulées, seules les variables locales sont réinitialisées. Cela peut conduire à un chemin d'exécution différent de celui qui a conduit à votre point d'arrêt initial. Vous devez en être conscient - je considère souvent qu'il s'agit d'une fonctionnalité utile pour explorer différents chemins d'exécution sans avoir à redémarrer l'application ou un processus particulier et long qui a conduit à la pile actuelle. Combiné avec la modification des valeurs des variables également disponible via le débogueur, vous pouvez faire toutes sortes de choses intéressantes.

Veuillez noter que, bien entendu, tous les effets secondaires qui ont pu se produire - par exemple, le trafic réseau, les manipulations de fichiers, les sorties de console, etc. - ne peuvent pas être remontés.

18voto

smink Points 39640

Drop Frame dans les pops du débogueur le cadre de la pile actuelle et met le contrôle à la méthode appelante en réinitialisant toutes les variables locales. Ceci est très utile pour parcourir de manière répétée une fonction, mais attention : les mutations de champs ou les changements d'état resteront.

Voir plus d'informations aquí .

0 votes

Le lien dans la réponse est mort - "Ce site ne peut être atteint | DNS_PROBE_FINISHED_NXDOMAIN" .

9voto

Dolph Points 12741

Déposer des cadres de la pile en utilisant le débogueur vous permet essentiellement de "rembobiner" l'exécution de votre application pour atteindre un état antérieur. Les variables situées en dehors du cadre de la pile ne sont pas rétablies.

À titre d'information, je crois que cette fonction est appelée "Drop". à Frame" dans Eclipse, mais il sert le même objectif.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X