Cuando ocurre una excepción, puede imprimir StackTrace y revisarla.Obtención de Stacktrace
¿Qué sucede si desea obtener StackTrace sin que ocurra una excepción?
¿Hay alguna manera de hacerlo?
Cuando ocurre una excepción, puede imprimir StackTrace y revisarla.Obtención de Stacktrace
¿Qué sucede si desea obtener StackTrace sin que ocurra una excepción?
¿Hay alguna manera de hacerlo?
Usted puede imprimir la StackTrace en cualquier momento llamando Environment.StackTrace
string tracktrace = System.Environment.StackTrace;
Cuando se captura una excepción que puede construir StackTrace objeto y extraer información útil de la misma. Véase el siguiente ejemplo:
StackTrace st = new StackTrace(true);
for(int i =0; i< st.FrameCount; i++)
{
// Note that high up the call stack, there is only
// one stack frame.
StackFrame sf = st.GetFrame(i);
Console.WriteLine();
Console.WriteLine("High up the call stack, Method: {0}",
sf.GetMethod());
Console.WriteLine("High up the call stack, Line Number: {0}",
sf.GetFileLineNumber());
}
PD: Esto funciona incluso sin una excepción - ver How to print the current stack trace in .NET without any exception.
System.Environment.StackTrace es una herramienta increíble, pero tenga en cuenta que no siempre obtiene lo que está buscando y existen diferencias entre las plataformas x86 y x64 que pueden afectar a la salida. Grody details here.