46 votes

Puis-je définir un point d'arrêt lorsque la variable obtient une valeur spécifique en .NET ?

J'utilise Visual Studio 2010, et je sais que cette fonctionnalité est disponible en C++.

J'ai besoin de déboguer un code qui change une variable en plusieurs valeurs. Je veux déboguer le code dans un cas spécifique, lorsque la variable prend une valeur spécifique. Je sais que je peux ajouter if(var == value) mais existe-t-il un moyen élégant de le faire ?

Autre question, puis-je définir un point d'arrêt lorsqu'une variable est modifiée en général ?

99voto

JaredPar Points 333733

Il est certainement possible de fixer une condition comme une variable recevant une certaine valeur. C'est ce qu'on appelle une condition de point d'arrêt. Pour en créer un, procédez comme suit.

  • Fixez un point d'arrêt au moment où la variable change.
  • Cliquez à droite sur le point de rupture et sélectionnez "Condition".
  • Tapez la conditionnelle comme "theNewValue == 42".

Maintenant, le point d'arrêt ne sera atteint que lorsque votre conditionnel sera évalué à true.

Le deuxième élément que vous avez demandé, qui consiste à interrompre le processus lorsque la valeur d'une variable change pour une raison quelconque, est connu sous le nom de point d'arrêt des données. Ceux-ci ne sont disponibles que pour le code C++. Ce n'est pas une option en C#, VB.NET ou tout autre langage géré.

4voto

Richard Everett Points 18318

Pour autant que vous utilisiez une édition de Visual Studio autre qu'Express, vous pouvez réaliser cette opération en C# à l'aide d'une balise condition de point d'arrêt .

Dans la boîte de dialogue Breakpoint Condition, saisissez une expression valide dans la zone Condition, telle que maVariableLocale > 1

y

...choisir A changé si vous voulez interrompre le processus lorsque la valeur de l'expression a changé.

Pour accéder à la A changé cliquez avec le bouton droit de la souris sur votre point d'arrêt dans la fenêtre Points d'arrêt et sélectionnez Condition... alors regardez la capture d'écran ci-dessous.

Has Changed option for breakpoint conditions

3voto

BrokenGlass Points 91618

Ajoutez un point d'arrêt avec F9 - cliquez droit et sélectionnez "Condition..." - Vous pouvez maintenant ajouter une condition booléenne et le point d'arrêt ne sera atteint que si cette condition est évaluée comme vraie.

3voto

pnmcosta Points 689

Cela dépend de la portée de votre point d'arrêt. Si la variable n'est pas locale ou non statique, vous ne pourrez pas le faire.

Pour définir la condition d'un point d'arrêt, faites un clic droit dessus et vous devriez obtenir cet écran :

Enter image description here

Choisissez Condition ...

2voto

thewhiteambit Points 334

Vous pouvez utiliser des points d'arrêt conditionnels. Je sais que votre question était spécifique à VS2010, mais sachez qu'à partir de VS2012, vous devez passer en mode de compatibilité géré pour utiliser les points d'arrêt conditionnels dans Visual Basic. Le pourquoi du comment est décrit ici :

Passage à un mode de compatibilité géré dans un studio visuel-2013

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