Mon débogueur C# ne fonctionne pas correctement. Il saute des points de rupture et une ligne de codes parfois. J'ai vérifié le gestionnaire de configuration. J'ai même essayé d'ajouter mes projets à de nouveaux fichiers de solution. Quelqu'un peut-il m'aider s'il vous plaît?Pourquoi mon débogueur C# ignore-t-il les points d'arrêt?
Répondre
Assurez-vous que les optimisations sont désactivées (il s'agit du paramètre par défaut pour la configuration de débogage, mais elles sont activées dans la configuration de version). Les optimisations du compilateur peuvent jouer avec le débogueur ...
comment puis-je ajuster l'optimisation du compilateur –
Si vous utilisez Visual Studio: Cliquez avec le bouton droit de la souris sur le projet dans l'explorateur de solutions, puis sélectionnez l'onglet "Construire". Il devrait y avoir une case à cocher intitulée "optimiser le code". (Au moins, cela s'applique à VS 2005 et 2008. Je ne sais pas sur les versions antérieures). – Odrade
Etes-vous sûr qu'il a été compilé correctement? Il me semble que vous déboguez sur une version précédente, ce qui peut arriver si la construction échoue (peut-être un bug de code, peut-être que les fichiers sont en lecture seule).
je compile des projets individuels dans la solution mais toujours le même problème –
Cela semble que votre code source n'est pas synchronisé avec les fichiers PDB. La solution la plus simple consiste à nettoyer la solution (qui supprime toutes vos DLL du dossier bin). Recompilez, puis réessayez.
En cas d'échec, essayez de fermer la solution et de supprimer les dossiers "obj". Et puis essayez à nouveau.
et aussi vérifier que vous compilez en mode débogage - quelque chose que je l'ai fait souvent (« pourquoi est-ce pas Parcourant ?! ») ne pas obtenir le point de rupture
je l'ai essayé mais toujours le même problème –
Ma liste de contrôle de mise au point:
- Assurez-vous que votre attachement au processus en utilisant le type de code correct - si le processus est à la fois non géré et le code managé alors ne compter sur « auto » pour travailler pour vous, indiquer explicitement ce que sorte de code que vous essayez de déboguer
- Aller au modu les fenêtres (Debug -> Windows -> Modules, vous devrez peut-être l'activer dans le menu "Personnaliser ..."
- Assurez-vous que l'assemblage que vous essayez de déboguer a été chargé, et que les symboles ont été chargés - s'ils n'ont pas été chargés, faites un clic droit sur ce module et sélectionnez "charger les symboles"
- Ouvrez votre fichier de code et placez votre point d'arrêt - s'il apparaît avec le petit symbole d'avertissement, regardez et voyez ce qu'il dit,
- Vous devrez peut-être aller à "tools -> options -> debugging -> général" et décochez "Activer juste mon code (géré seulement)"
- Vous pouvez également désélectionner "Exiger des fichiers source pour correspondre exactement à la version d'origine" , si vous pensez que vos sources pourraient être minces TLY out (attention cependant, car cela peut conduire à le débogage avec complètement les mauvaises sources, ce qui peut être très déroutant)
Sur certains cas, vous trouverez peut-être que votre module ne soit pas chargé au point où vous attachez votre débogueur (par exemple si vous avez une sorte de plug dans archetecutre, et que les assemblys de plugins ne sont chargés que lorsque vous les utilisez pour la première fois). Dans ces cas, tout ce que vous pouvez faire est d'essayer de vous assurer que tout est prêt quand le module est chargé.
Merci pour une réponse si détaillée. J'ai tout essayé mais j'ai toujours le même problème. –
Désactiver "Just My Code ..." l'a fait pour moi. Merci. –
Grande liste. M'a aidé. – Arnej65
Si des méthodes entières sont ignorées, examinez la source et vérifiez si l'attribut System.Diagnostics.DebuggerStepThroughAttribute est présent.
Malgré le nom, il empêche le débogueur de parcourir la méthode.
non il saute un certain temps du milieu de la mathod et quelques fois complet mathod. –
Brillant! Je pensais que je devenais fou quand une méthode personnalisée ajoutée à une classe générée à partir de XSD ne voulait pas déboguer. La raison en était que 'xsd.exe' décorait le code généré avec cet attribut. Les points d'arrêt créés avant F5 ont parfois été touchés, mais pas les nouveaux points d'arrêt, et pas toujours. – ajeh
Si au moins quelquefois le point d'arrêt est atteint, cela signifie que tous les paramètres sont probablement OK.Les occurrences manquantes peuvent être causées par des effets secondaires, par exemple: l'évaluation des propriétés par le débogueur (au moins VS ignore les points d'arrêt lors de l'évaluation des propriétés pour le débogueur) ou certains outils d'espionnage (mais ils sont généralement interceptés par le débogueur).
Si vous pensez que cela peut être le cas, éteignez les outils d'espionnage et disable the property evaluation by the debugger.
Cela peut parfois être insuffisant, par exemple: Si votre propriété renvoie une collection, l'affichage, par ex. un Count()
évaluera la propriété - donc supprimer également toutes les références de propriété des fenêtres de surveillance, etc.
Cela a fonctionné pour moi dans VS 2017, allez dans Outils> Options puis dans la fenêtre Options, allez dans la section Débogage. Activer - "Activer le pas à pas source .NET Framework"
Désactiver "Propriétés du projet/Construire/Optimiser le code" a fonctionné pour moi.
- 1. Pourquoi mon débogueur est-il si lent?
- 2. Pourquoi mon JavaScript modifié n'apparaît-il pas dans le débogueur?
- 3. Arrêter l'exécution de mon programme et aller au débogueur sans définir de points d'arrêt (Visual Studio/GCC et C++)
- 4. Débogueur intégrable pour C++
- 5. Pourquoi les points d'arrêt dans VS2008 cessent-ils de fonctionner?
- 6. Pourquoi mon débogueur Delphi 7 décide-t-il de ne pas accepter certaines entrées au clavier
- 7. Pourquoi mon code STL fonctionne-t-il si lentement lorsque le débogueur/IDE est connecté?
- 8. Pause dans le débogueur C# pour diviser par zéro
- 9. Points d'arrêt de données Visual C++ sur les codes de points flottants Changement
- 10. Problème de débogueur à C# Express - 2008
- 11. Débogueur multithread
- 12. PHP - Sérialiser les points flottants
- 13. .Net - Supprimer les points du chemin
- 14. Pourquoi ce n'apparaît dans mon c chaînes de #: Â
- 15. Pourquoi mon code de réflexion C# se bloque?
- 16. Pourquoi ai-je cette exception SocketException dans mon service C#?
- 17. Débogage sans débogueur
- 18. Points d'interrogation après les images et fichiers js/css dans les rails. Pourquoi?
- 19. Pourquoi ne puis-je pas déboguer mon application Web asp.net?
- 20. Comment éviter les points dans VS2008
- 21. Bibliothèque de points de contrôle pour C#
- 22. Pourquoi @SuppressWarnings casse mon code?
- 23. Objective-C: variables d'instance hors de portée dans le débogueur
- 24. Débogueur XCode: afficher les chaînes longues
- 25. Débogueur PHP avec tests unitaires
- 26. Débogueur erreur
- 27. Xcode: Les points d'inflexion se désactivent
- 28. Pourquoi mon code PHP ne "dissociera" pas les fichiers texte?
- 29. Pourquoi mon processus K2 n'apparaît-il pas dans les rapports?
- 30. Pourquoi les événements tactiles détruisent-ils mon framerate Android?
L'optimisation est-elle désactivée? Déboguer ou libérer? – Guillaume
Qu'est-ce que c'est «parfois»? –
comment puis-je vérifier l'optimisation ??? parfois signifie que chaque fois que j'utilise le débogueur, il passera après avoir passé quelques lignes –