Je travaille sur un programme qui utilise la méthode système.diagnostics.debugger.break () pour permettre à l'utilisateur de définir un point d'arrêt de la ligne de commande. Cela a bien fonctionné pendant plusieurs semaines maintenant. Cependant, lorsque je travaillais à la réparation d'un test de l'unité aujourd'hui, j'ai essayé d'utiliser le commutateur de débogage de la ligne de commande, et cela n'a pas fonctionné. P>
Voici ce que j'ai essayé: p>
Une recherche rapide Google n'a rien révélé et la documentation de l'API pour .NET ne mentionne rien à propos de cette fonction ne fonctionne pas correctement. Alors ... des idées? P>
4 Réponses :
Utilisez-vous VS 2008 SP1? J'ai eu beaucoup de problèmes autour de débogage dans cette libération, et tous ont été résolus par ce Microsoft Patch a>. p>
points d'arrêt mis dans des boucles ou dans
Les fonctions récursives ne sont pas touchées dans tous
processus à chaque itération.
Fréquemment, certains processus peuvent passer
à travers de nombreuses itérations d'une boucle,
ignorer le point d'arrêt, avant un
processus est arrêté. p>
Les points d'arrêt sont touchés, mais ils ne sont pas
visible quand vous avez débogué plusieurs
Processus dans le studio Visual
débogueur. p>
blockQuote>
Il y a quelques autres problèmes liés au débogueur également corrigé. p>
Désolé ... Après avoir installé le patch, je vois toujours le problème. :-(
J'ai finalement compris ce qui se passait. Pour une raison quelconque, quelque chose changea sur ma machine afin que juste appeler débogger.break code> n'était plus suffisant (je ne comprends toujours pas ce qui a changé). Dans tous les cas, je peux maintenant causer le débogueur à utiliser en utilisant: if (Debugger.IsAttached == false) Debugger.Launch();
J'ai rencontré ce même problème de migration de Visual Studio 2008 à Visual Studio 2010. Debugger.Break () Code> Travaillé bien dans VS2008; Pour VS2010, j'utilise maintenant débogger.launch () code>.
Idem dans vs2015 - débogueur.break () n'a pas fonctionné - Debugger.Launch () a travaillé
Fwiw et pour d'autres idiots comme moi, dans mon cas, c'était parce que le code que je courais n'était pas le code que je cherchais (code similaire, dossier différent ...)
J'utilisais comme suggéré dans Cette réponse n'a également pas présenté le débogueur. P > J'ai essayé de réinitialiser mes paramètres Visual Studio et cela fonctionnait! P> P> débogger.launch () code> méthode et il a cessé de fonctionner soudainement. En utilisant
extrait d'ici ( MSDN ) Note suivante: P>
À partir de .NET Framework 4, l'exécution n'exerce plus le contrôle serré du lancement du débogueur de la méthode code> Break CODE>, mais signale une erreur au sous-système Windows Erreur Reporting (WER). WER fournit de nombreux paramètres pour personnaliser l'expérience de rapport de problème, de sorte que de nombreux facteurs influenceront la manière dont WER répond à une erreur telle que la version, le processus, la session, l'utilisateur, la machine et le domaine. Si vous avez des résultats inattendus lorsque vous appelez la méthode code> Break CODE>, vérifiez les paramètres WER sur votre machine. Pour plus d'informations sur la personnalisation de WER, voir WER Paramètres a>. Si vous souhaitez vous assurer que le débogueur est lancé, quels que soient les paramètres WER, assurez-vous d'appeler la méthode code> code> à la place. P> blockQuote>
Je pense que cela explique le comportement détecté. P>