2009-08-21 3 views
1

Это происходит довольно часто, когда я начинаю отладку класса, регистрируя каждый вызов функции в консоли и искажая различия в прослушиваемых случаях. Есть ли какой-то атрибут, который я могу применить к классу, чтобы включить такую ​​трассировку? Это довольно утомительно, чтобы ввести этиЗаписывать все вызовы функций на консоль

Console.WriteLine("classname: methodname") 

для каждого метода и удалить их после этого (удаление может быть сделано с помощью условной компиляции, но это не очень приятно смотреть на код, когда у вас есть все это избыточность)

ответ

5

Был добавлен инструмент, который упоминал меня, используя атрибуты. Посмотрим, смогу ли я его найти.

Я думаю, что это было PostSharp:

Article

http://www.postsharp.org/

0

В тусклый темно возрастов разработки программного обеспечения, часто используется инструмент профилирования для достижения этого, поскольку профилирующий вред внесите дополнительный код при входе и выходе из всех функций, хотя я должен сказать, что это довольно мрачный подход к отладке, и когда я его использовал, это был отчаянный ход, а не линия фронта. Отладка по заявлению печати довольно медленная и неэффективная.

+0

Это дает вам некоторую информацию о потоке программы. Эффективность зависит от проблемы. – Etan

3

Вы можете использовать PostSharp, чтобы перехватить все вызовы методов и распечатать их даже со всеми аргументами и не требует изменений исходного кода. Это CodeProject article показывает, как вести журнал с помощью PostSharp.

Просто отметить, PostSharp является фреймворком aspect-oriented programming (AOP) и еще есть.

Смежные вопросы