2010-03-27 3 views
11

J'ai une propriété dans une classe qui est modifiée par quelque chose. Le seul endroit où je change la valeur de ce code est une ligne qui ressemble à ceci:VS débogage et observation d'une variable pour les modifications

pushpin.Position.Altitude = -31; 

Au cours de débogage de Visual Studio, est-il un moyen de regarder .Altitude pour toute modification apportée, de préférence, il se casse à l'instruction d'affectation cela change la valeur.

Si c'est la manière correcte de localiser ce problème, est-ce que je pourrais avoir un tutoriel/instruction étape par étape sur la façon de faire ceci?

Merci.

Répondre

11

S'il s'agit d'une propriété, vous pouvez le faire en ajoutant un point d'arrêt à la méthode set de la propriété. Mettre le curseur dans l'instruction set et appuyer sur F9 créera le point de rupture.

S'il s'agit d'un champ, il n'y a aucun moyen de regarder cela directement. Rompre quand un champ change une valeur est une opération supportée en C++, connue sous le nom de points de rupture de données, mais n'est pas supportée dans le CLR. La meilleure solution consiste à convertir temporairement le champ en propriété et à rompre l'instruction set.

EDIT

Mise à jour sur la base OP disant qu'il est une DLL 3ème partie.

Dans ce cas, vous souhaitez utiliser la fonction Break at Function de Visual Studio. La première étape consiste à désactiver Just My Code.

  • Outils -> Options -> Débogueur
  • Décochez la case "Activer juste mon code"

Suivant réellement définir le point de rupture nommé

  • ouvrir la fenêtre des points de rupture (Debugger -> Windows -> Points de rupture)
  • Cliquez sur le nouveau bouton et sélectionnez "Break at function"
  • Entrez le nom de la propriété. Par exemple: Position.set_Altitude

Vous devrez peut-être saisir le nom complet afin de le faire fonctionner

2

Vous pouvez définir un point d'arrêt conditionnel en réglant le pb, puis clic droit pour spécifier une condition sur lequel briser à cette ligne.

Vous pouvez ajouter une "Surveillance" à une variable et spécifier de faire une pause n'importe où/chaque fois que la valeur change.

Questions connexes