Visual Studio Debugger ignore les points d'arrêt
Mon Visual Studio 2008 IDE est de se comporter d'une très étrange de la mode, tout le débogage d'une unité de test: j'ai un point d'arrêt et quand je l'ai frappé et puis essayer de l'étape avec F10 la fin du test. Si j'ai Mis des points d'arrêt sur chaque ligne à l'intérieur de la méthode testée, je vais mettre fin à un de manière aléatoire, pas le prochain sur la ligne suivante. J'ai nettoyé et reconstruit la solution après un nettoyage de redémarrer le système. Le comportement persiste. Quelqu'un at-il vécu cela et arriver à une conclusion.
Ce test uniquement utilisé le principal thread d'exécution (pas de threads supplémentaires sont en cours de création)
source d'informationauteur My Other Me
Vous devez vous connecter pour publier un commentaire.
Il y avait un post VS2008 SP1 correctif publié qui permet de résoudre un certain nombre de problèmes de débogage. L'article base de connaissances est icile téléchargement du correctif est ici.
Mise à JOUR: le téléchargement du correctif emplacement était à la retraite, je ne sais pas d'un autre emplacement de téléchargement. Merci d'éditer ce post si vous en trouver un.
Ce comportement se produit si vous debug de la version de publication (depuis les lignes sont optimisés loin).
Aussi il m'est arrivé, dans le passé, si par accident je suis le débogage d'un ancien exe ailleurs (tel que défini par le projet de config), au lieu de la plus récemment construire un ;^)
J'ai eu des problèmes similaires sur VS 2003. Il s'est avéré que j'ai été en utilisant mal les symboles de sorte qu'ils pourraient ne pas être lier à la source correcte.
Assurez-vous en suivant:
par exemple, si vous placez un point d'arrêt sur "int some_variable;", vous ne serez jamais atteint, mais au lieu de cela, vous serez frappé de la première place après l'endroit où vous la définition de\initialiser quelque chose ou l'appel des méthodes
p.s. essayez de placer l'DebugBreak(); la fonction dans les deux méthodes (à moins que ce code est exécuté à l'intérieur de certaines boucle donc cela peut être frustrant). Ce qui devrait entraîner la résiliation de votre processus de l'exécution d'atteindre l'une de ces fonctions (de sorte que vous pouvez continuer avec le débogage à partir de ce lieu particulier).
Ce comportement se produit également lorsque vous avez plusieurs threads en cours d'exécution.
Même dans une version Debug, les optimisations du compilateur pourrait expliquer ce comportement. Sous propriétés du projet, "Construire", vérifiez que la case "optimisation de code" est désactivée. J'ai vu ce activée par défaut après la mise à niveau de certains projets .Net 1.1.
Êtes-vous de mettre vos points d'arrêt dans le code qui fait partie d'une classe générée?
J'ai connu ce problème sur le site du client d'un service de référence. Les classes générées sont des classes partielles avec la
attribut appliqué. Même lorsque mon point d'arrêt a été dans un fichier différent, mais toujours partie de la classe attribuée, le point d'arrêt sera sauté.
J'ai supprimé cette attribut de la Référence.cs fichier et le débogueur a fonctionné comme je l'espérais.
Bien sûr, ce n'est pas une solution permanente car si la Référence.cs fichier est régénéré, l'attribut est de retour.
Cela peut être aussi simple que d'un cas de l'infrastructure de test ne charge pas la même assemblée que vous êtes en train de travailler sur. J'ai eu cela se produire dans de rares cas dans NUnit, qui fonctionne à partir d'une copie de votre assemblée en vertu de l'essai; à l'occasion, il s'est arrêté de copier sur la version la plus récente. Sont vos points d'arrêt décorées avec un "symboles n'ont pas été chargé" indicateur?
Aller dans Project->Propriétés et décocher la case "Optimiser le Code"
C'est le cas si vous voyez un code tel que DataSet ds = new DataSet(); est frappé sur le débogueur de code mais comme string Test = "Test"; a sauté.
Peut-être que c'est trop tard pour répondre, je me suis même question dans VS2012 pour corriger s'il vous plaît vérifier si le menu Test>TestSettings> "LocalTestRun.TestRunConfig" est cochée, si elle est cochée, décochez-la et elle va cesser d'ignorer les lignes de code. Peut-être même pour Vs2008.
J'ai couru dans cette dans Visual Studio Community 2013. Le comportement semble être de par leur conception. Lors de l'exécution des tests, l'exécution ne va pas s'arrêter sur des points d'arrêt. Lorsque vous voulez exécution pour s'arrêter sur des points d'arrêt, sélectionne TEST --> Debug plutôt que de TEST --> Exécuter.
Mes tests unitaires ont été de tester sous x86. Changer x64 travaillé.
Menu
Test
->Test Settings
->Default Processor Architecture
->x64
.F10 est l'Étape SurF5 est de continuer au prochain point d'arrêt, F11 est l'Étape Dans, qui exécute la ligne suivante de code, puis attend. C'est ce que vous êtes probablement à la recherche pour.
Je viens de rencontré les mêmes problèmes et ont passé par toutes les suggestions ci-dessus à pas de chance. Venir trouver à un certain point dans le passé, quelqu'un a changé la signature de la méthode pour être "privé" où il faut être "statique" ou "public". Dès que j'ai changé la méthode de test de la signature pour en revenir à "public", les points de rupture commencé à travailler à nouveau.