Imprimir la traza de la pila no es tan difícil cuando usas System.Diagnostics
. Me pregunto si es posible imprimir los VALORES de los parámetros pasados a cada método en el seguimiento de la pila, y si no, por qué no.Imprime los valores de los parámetros en la pila
Aquí está mi código preliminar:
public static class CallStackTracker
{
public static void Print()
{
var st = new StackTrace();
for (int i = 0; i < st.FrameCount; i++)
{
var frame = st.GetFrame(i);
var mb = frame.GetMethod();
var parameters = mb.GetParameters();
foreach (var p in parameters)
{
// Stuff probably goes here, but is there another way?
}
}
}
}
Gracias de antemano.
No funcionará: 'MethodInfo.GetParameters' devuelve los parámetros declarados, no los valores de argumento ... –
@ThomasLevesque: Bueno, este appraoch puede no funcionar. ¿Hay otro que lo haga? – user420667
Solo un depurador tiene una oportunidad para obtener la información necesaria, disponible desde el archivo .pdb. Sin embargo, a partir de ahí, el programa no puede depurarse solo y la información solo es precisa para la compilación Debug. La optimización de llamadas de método es un objetivo muy importante del optimizador de fluctuación de fase. No puedes hacer que esto funcione. –