web-dev-qa-db-fra.com

Puis-je connaître la valeur de retour avant de revenir lors du débogage dans Intellij?

Avec:

Object method(){
    ...
    return /* some complex expression */
}

Existe-t-il un moyen de voir quelle valeur sera retournée lors du débogage? Comme définir un point d'arrêt qui serait atteint juste après le retour, mais avant que l'exécution ne passe au code appelant? Je voudrais pouvoir savoir quelle est la valeur de retour et également voir quelles sont les valeurs de toutes les variables locales.

La façon dont je le fais maintenant est de créer une variable temporaire: Object ret = /* something complex */; return ret;. Mais c'est un problème et ajoute également une ligne de code supplémentaire inutile.

Remarque: Il s'agit de la même question que Puis-je trouver la valeur de retour avant de retourner lors du débogage dans Visual Studio , mais pour intellij.

102
Kyle

Il semble y avoir plusieurs façons de procéder. La première consiste à configurer le point d'arrêt sur la signature de la méthode, dans votre cas, vous devez configurer un point d'arrêt sur la méthode Object () {. Cela vous permettra de surveiller l'entrée et la sortie de la méthode. Je pense que vous devez utiliser ceci en conjonction avec "Watch method return values" comme indiqué ci-dessus, mais je n'ai pas pu tester complètement cela car il prend trop de temps à calculer. Attention, cela diminue considérablement les performances du débogueur et le débogage prendra plus de temps.

Vous pouvez également effectuer les opérations suivantes manuellement.

  1. Configurez le point d'arrêt sur la ligne de retour.
  2. Lorsque la ligne de retour est atteinte, cliquez sur la ligne de retour, placez spécifiquement le curseur sur l'opération que vous souhaitez voir, puis allez dans Exécuter-> Évaluer l'expression (ou Alt-F8) et il devrait exécuter l'expression à ce point et retourner ce qu'il retourne.

Remarque: Si vous créez un point d'arrêt, vous pouvez dire beaucoup de choses IDEA pour y faire face, par exemple si vous cassez sur un point d'arrêt, vous pouvez dites-leur d'exécuter une expression et de la consigner. Vous pouvez regarder ce que vous pouvez faire si vous cliquez avec le bouton droit sur un point d'arrêt et cliquez sur Propriétés.

UPDATE : Essayez ceci en conjonction avec la première façon de le faire. N'utilisez pas les "valeurs de retour de la méthode Watch" car cela semble ralentir ou geler la session de débogage. Au lieu de cela, procédez comme suit

  1. Faites un clic droit sur l'expression de retour que vous souhaitez voir et cliquez sur "Ajouter aux montres"
  2. Ajoutez ensuite un point d'arrêt de méthode comme indiqué ci-dessus.
  3. Déboguez votre programme et votre méthode se brisera sur la signature de la méthode.
  4. Appuyez sur la touche F9 pour continuer et il devrait se casser à nouveau [~ # ~] après [~ # ~] l'expression de retour a été calculé et votre expression de retour doit être dans la colonne de surveillance.

N'oubliez pas que les points d'arrêt de méthode sont plus lents, ce qui peut prendre plus de temps, un moyen délicat d'améliorer cela si vous remarquez trop de résultats de performance consiste simplement à définir le point d'arrêt de l'instruction de retour (sans avoir de point d'arrêt de méthode), puis à ajouter le point d'arrêt de méthode [~ # ~] après [~ # ~] le point d'arrêt de l'instruction de retour frappe puis continue.

J'espère que cela t'aides,

28
jluzwick

Sur IntelliJ IDEA 2016.3: il est caché à l'intérieur du bouton de rouage du panneau de débogage. Assurez-vous que Show Method Return Values est cochée .

IntelliJ IDEA 2016.3 "Show Method Return Values"

Utilisez le débogueur pour casser quelque part à l'intérieur la fonction dont vous souhaitez voir la valeur de retour.

step into function

Sortez de la fonction (ou passez jusqu'à ce que vous vous échappiez):

step out

Observez que la valeur de retour apparaît dans vos variables:

observe the return value

122
Birchlabs

Le bouton Valeurs de retour de la méthode Watch est disponible dans le panneau de débogage .

Surveiller les valeurs de retour de la méthode : cliquez sur ce bouton pour regarder les valeurs de retour de la dernière méthode exécutée.

watch method return values

Configuration d'IDEA 12:

IDEA 12

35
CrazyCoder

Cela a été demandé il y a quelque temps, mais j'utilise une méthode différente lorsque je veux gérer cette situation.

Lors du débogage, vous pouvez marquer l'expression (dans votre cas, l'expression juste après le "retour") et appuyer sur CTRL + ALT + F8 (Quick Evaluate Expression). IntelliJ affichera une petite fenêtre vous montrant la valeur qui sera retournée.

1
Ozilophile