web-dev-qa-db-fra.com

Interrompre le changement de valeur variable dans Android Studio 1.1.0?

Je sais que je pourrais définir un point d'arrêt à chaque ligne où mon code modifie la variable, mais existe-t-il une option telle que cliquer avec le bouton droit sur une variable (dans "Ajouter aux montres") qui s'arrêterait lorsqu'une variable change de valeur?

Je pense que C++ a cette option. Voir ceci.

Et Eclipse? Voir ceci.

Est-ce implémenté dans AS?

26
DSlomer64

Vous pouvez interrompre les changements de valeur de certaines variables dans Android Studio 1.1.0.

Android Studio les appelle "Java Field Watchpoints".

Dans les fenêtres des points d'arrêt, (Run -> "View breakpoints...") or Ctrl+Shift+F8, vous pouvez ajouter "Java Field Watchpoints" à partir du signe plus dans le coin supérieur gauche, puis sélectionner votre classe et votre variable.

40
Hrym

Si l'objectif est simplement de définir un point de surveillance où l'exécution s'arrête si la valeur d'une variable change, il existe deux méthodes:

Appuyez sur Ctrl-shift-F8 pour définir un point de surveillance fait apparaître cette boîte de dialogue:

enter image description here

Cela semble plus puissant, mais c'est déroutant car il manque l'option dont j'ai besoin; et il y a une étape supplémentaire: remplir la boîte de dialogue ci-dessous:

enter image description here

Une fois que vous l'avez rempli correctement, vous obtenez les mêmes options pour arrêter l'exécution que dans la méthode plus simple ci-dessous:

  1. Définissez la variable sur une ligne se terminant par un point-virgule.
  2. Cliquez avec le bouton gauche dans la zone où vous définissez un point d'arrêt normal et une boîte de dialogue apparaît. enter image description here
  3. Choisissez des options adaptées à vos besoins.

Dans toute instance où la valeur de la variable prefDbExists change, l'exécution se met en pause comme à tout point d'arrêt "normal" (inconditionnel). Et c'est tout ce dont j'avais besoin quand j'ai posé la question d'origine.


EDIT: Le nom de classe complet est {package name}.{class name})

5
DSlomer64

Ce que vous recherchez est communément appelé "WatchPoint". Vous trouverez des réponses détaillées et des exemples sur le doc. page de JetBrains - IntelliJ - Idea qui est la base de Android Studio.

https://www.jetbrains.com/help/idea/2016.3/creating-field-watchpoints.html

Pour moi, cela fonctionne parfaitement!

1
Sold Out