2009-08-21 8 views
1

Il arrive assez souvent que je commence à déboguer une classe en enregistrant chaque appel de fonction à la console et en recherchant les différences dans les cas d'écoute. Y at-il un attribut que je peux appliquer à une classe pour activer un tel suivi? Il est assez épuisant d'avoir à entrer dans cesConsigner toutes les invocations de fonctions sur la console

Console.WriteLine("classname: methodname") 

à chaque méthode et de les enlever ensuite (enlever peut être fait par la compilation conditionnelle, mais il est pas très agréable à regarder le code lorsque vous avez tout cela Redondance)

Répondre

0

Dans la sombre obscurité âges de l'ingénierie logicielle, on a souvent utilisé un outil de profilage pour y parvenir a ajouté du code supplémentaire à l'entrée et à la sortie de toutes les fonctions, bien que je doive dire que c'est une approche assez lugubre pour le débogage et quand je l'ai utilisé, c'était un mouvement de désespoir pas en première ligne. Le débogage par l'instruction d'impression est assez lent et inefficace.

+0

Il vous donne des informations sur le déroulement du programme. L'efficacité dépend du problème. – Etan

3

Vous pouvez utiliser PostSharp pour intercepter tous les appels de méthode et les imprimer même avec tous les arguments, sans nécessiter de modification du code source. Ce CodeProject article montre comment faire une journalisation avec PostSharp.

Juste à noter, PostSharp est un framework aspect-oriented programming (AOP) et il y en a d'autres.

Questions connexes