2008-10-03 22 views

Respuesta

3

Usted podría conseguir en esta información usando el CLR debugging API aunque no será un par simple de líneas para extraerlo.

+0

muestra del depurador gestionado: http://www.microsoft.com/downloads/details.aspx?familyid=38449a42-6b7a-4e28-80ce-c55645ab1310&displaylang=en –

1

Reflection le dirá el tipo de parámetros que tiene un método, pero no ayudará a descubrir sus valores durante una invocación en particular. La reflexión no te dice nada sobre las variables locales.

Necesita el tipo de API que utiliza el depurador para acceder a este tipo de información.

0

No creo que esto sea posible, puede obtener el método y sus parámetros mirando el StackTrace.

System.Diagnostics.StackTrace sTrace = new System.Diagnostics.StackTrace(true); 
for (Int32 frameCount = 0; frameCount < sTrace.FrameCount; frameCount++){ 
    System.Diagnostics.StackFrame sFrame = sTrace.GetFrame(frameCount); 
    System.Reflection.MethodBase thisMethod = sFrame.GetMethod(); 
    if (thisMethod == currentMethod){ 
      if (frameCount + 1 <= sTrace.FrameCount){ 
       System.Diagnostics.StackFrame prevFrame = sTrace.GetFrame(frameCount + 1); 
       System.Reflection.MethodBase prevMethod = prevFrame.GetMethod(); 
      } 
    } 
} 
0

La gente de secondlife suspenden guiones y los mueven entre los servidores. Eso implica que deben capturar el estado de un script en ejecución, incluidos los valores de las variables en la pila de llamadas.

Su lenguaje de scripts se ejecuta en mono, una implementación de código abierto del tiempo de ejecución de .NET. Dudo que su solución se aplique al tiempo de ejecución regular .NET, pero el video of the presentation on how they did it (saltar a la segunda mitad) podría ser interesante.

Cuestiones relacionadas