J'ai un code C # régulier. Je n'ai aucune exception . Je veux enregistrer par programme la trace de pile en cours à des fins de débogage. Exemple:
public void executeMethod()
{
logStackTrace();
method();
}
J'ai un code C # régulier. Je n'ai aucune exception . Je veux enregistrer par programme la trace de pile en cours à des fins de débogage. Exemple:
public void executeMethod()
{
logStackTrace();
method();
}
Jetez un oeil à l'espace de noms System.Diagnostics. Beaucoup de goodies là-bas!
System.Diagnostics.StackTrace t = new System.Diagnostics.StackTrace();
C'est vraiment bien d'avoir un coup de main pour apprendre ce qui se passe sous le capot.
Je vous recommande d'examiner les solutions de journalisation (telles que NLog, log4net ou les modèles Microsoft et les pratiques de la bibliothèque d'entreprise) qui peuvent atteindre vos objectifs, puis certains. Bonne chance mec!
Une alternative à System.Diagnostics.StackTrace
est d'utiliser System.Environment.StackTrace qui renvoie une représentation sous forme de chaîne de la pile.
Il y a deux façons de faire ça. Le System.Diagnostics.StackTrace()
vous donnera une trace de pile pour le fil en cours. Si vous avez une référence à une instance Thread
, vous pouvez obtenir la trace de la pile pour cela via la version surchargée de StackTrace()
.
Vous pouvez également vérifier la question de dépassement de pile Comment obtenir la pile de données du thread non courant? .
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.