web-dev-qa-db-fra.com

Comment puis-je "exécuter jusqu'à ce que cette variable change" lors du débogage?

Lors du débogage de mon C #, je veux souvent savoir quand la valeur d'une variable change puis étudier l'état du programme.

Actuellement, je le fais comme ça:

  1. Watch-list la variable incriminée.
  2. spammez physiquement F10 (raccourci pour Step Over) jusqu'à ce que la valeur change.

Cependant, le nombre de F10 requis est gênant.

Cela a sûrement été automatisé, pensai-je. Mais je ne trouve pas cette fonctionnalité dans mon Microsoft Visual C # Express , ce qui me surprend. Après tout, la Liste de surveillance fait met automatiquement en surbrillance les valeurs modifiées en rouge vif.

Est-ce que je manque quelque chose?

21
Anko

Astuce simple pour l'édition Express:

private string myValue;
public string MyValue
{
  set
  {
    if (this.myValue != value) Debugger.Break();
    this.myValue = value;
  }
}
21
Teoman Soygul

Les points d'arrêt conditionnels sont ce que vous recherchez, mais il semble qu'ils ne soient pas disponibles dans Visual Studio Express.

Dans Visual Studio (non-Express), sa méthode consiste à créer un point d'arrêt conditionnel avec une expression égale à votre valeur de contrôle et à "A changé" en tant que condition de point d'arrêt.

6
Ben Hoffstein

Utilisez Debugger.Break en fonction d'une condition d'exécution ou cliquez avec le bouton droit de la souris sur un point d'arrêt, puis choisissez une pause conditionnelle -> a été modifiée.

Edit: ne sais pas à ce sujet dans Express

0
Denis Biondic
  1. Définissez le point d'arrêt où vous souhaitez que le code soit mis en pause
  2. Ouvrez la fenêtre Points d'arrêt (Débogage -> Windows -> Points d'arrêt).
  3. Cliquez avec le bouton droit sur votre point d'arrêt et sélectionnez Condition ...
  4. Définissez la condition sur le nom de la variable et sélectionnez le bouton radio A changé.
  5. Cliquez sur OK, puis procédez au débogage comme d'habitude :)
0
Darth Android

Si vous souhaitez intercepter un changement de variable à un point d'arrêt, par opposition à un changement exact, définissez le point d'arrêt, cliquez dessus avec le bouton droit de la souris et choisissez "Condition". Disons que votre nom de variable est X et que la valeur actuelle est A. Entrez "X! = A" dans le champ de condition.

Maintenant, le point d'arrêt ne sera atteint que lorsque X passera à une valeur autre que A.

0
Sergiy Migdalskiy

Voici comment je le fais dans Visual Studio. Définissez un point d'arrêt en appuyant sur F9 ou en cliquant dans la marge de gauche. Cliquez ensuite avec le bouton droit sur le point rouge qui apparaît et sélectionnez la commande Condition. Il y a aussi d'autres options.

Toutefois, cela peut ne pas être pris en charge dans Visual Studio Express.

0
Jonathan Wood

vous pouvez utiliser des points d'arrêt conditionnels

voir this

0
Illuminati

Vous pouvez écrire une instruction if qui recherche une modification et avoir un point d'arrêt au sein de cette instruction if. Elle se brise donc initialement, puis vous cliquez sur le bouton de reprise, elle continue jusqu'à ce qu'elle atteigne ce point d'arrêt.

0
Remm