Consignation des traces de pile dans .NET en l'absence d'exceptions
Lors du débogage du code, l'impression de la trace de pile actuelle peut être inestimable pour comprendre le déroulement du programme et identification des problèmes. Cependant, dans les situations où aucune exception ne s'est produite, l'approche standard consistant à utiliser des blocs try-catch ou la propriété Exception.StackTrace ne fonctionnera pas.
La solution
Pour imprimer la trace actuelle de la pile sans exception, utilisez la classe System.Diagnostics.StackTrace :
System.Diagnostics.StackTrace t = new System.Diagnostics.StackTrace();
elle contiendra des informations sur le méthode en cours d'exécution, son appelant, et ainsi de suite, jusqu'au point d'entrée du programme.
Exemple
Considérez le code suivant :
public void executeMethod() { logStackTrace(); method(); }
Si nous appelons executeMethod() puis imprimons la trace de la pile, nous verrons quelque chose comme :
at executeMethod() in C:\Path\To\MyCode.cs:line 10 at method() in C:\Path\To\MyCode.cs:line 15 at Program.Main() in C:\Path\To\MyMain.cs:line 20
Cette trace nous montre la pile d'appels, même si aucune exception ne s'est produite.
Ressources supplémentaires
Pour d'autres outils de débogage , explorez l'espace de noms System.Diagnostics. Les frameworks de journalisation tels que NLog, log4net et Enterprise Library fournissent des solutions de journalisation complètes, y compris la possibilité de capturer les traces de pile.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!