В VB.NET я знаю, что могу получить трассировку стека, посмотрев на значение ex.StackTrace
при обработке исключения. Как я могу получить функции в стеке, когда я не обрабатываю исключение? Я хочу внедрить некоторую систему ведения журналов для записи шагов, которые пользователь предпринимает до сбоя, чтобы помочь в отладке.
Как получить трассировку стека в .NET при нормальном выполнении?
Ответ 1
Environment.StackTrace
содержит строку, но для получения более подробной информации и параметров используйте класс StackTrace
.
Чтобы быть более конкретным, проверьте параметры конструктора:
http://msdn.microsoft.com/en-us/library/system.diagnostics.stacktrace.stacktrace.aspx
Если вам нужна трассировка стека, начиная с кадра вызывающего абонента (например, в функции ведения журнала: вы не хотите, чтобы все начиналось с MyLogMethod
), вы должны попробовать этот, который принимает параметр int
, количество пропущенных кадров.
Если вам нужна трассировка стека без исходной информации (например, если вы не хотите передавать информацию о своем исходном коде), попробуйте следующее:
Надеюсь, что это поможет!
Ответ 2
Ответ 3
System.Environment.StackTrace