Estoy investigando un archivo de volcado de Windows en WinDBG. Puedo cambiar el marco de la pila de llamadas por el comando .frame, pero descubrí que los registros siempre contienen el último contexto. Es decir, si es posible restaurar el contexto que pertenece a un marco de pila de llamadas específico que no es el superior?Cómo detectar el valor de registros en un marco de pila de llamadas específico en windbg
6
A
Respuesta
7
Si está depurando un objetivo x64, puede utilizar:
.frame /r
Para ver los registros en el marco. Esta información se basa en los datos de desenrollado en la imagen, por lo que es bastante confiable. También puede cambiar el contexto con:
.frame /c
Por x86, no hay información de desenrollado por lo que este truco no funciona. .frame todavía le mostrará algo para los registros, pero no es probable que sea correcto (básicamente, solo será correcto por suerte).
0
intente findthis.py, que es una especie de obtención de CFI (Call Frame Info) desensamblando el prólogo de cada fotograma en la pila de llamadas.
http://nick.luckygarden.org/find-this-ptr-within-a-callstack-in-a-dump-file/
Cuestiones relacionadas
- 1. Windbg Establecer puntos de interrupción condicionales que dependen de la Pila de llamadas
- 2. Imprimir pila de llamadas completa en printStackTrace()?
- 3. pila de llamadas en el perfilador Potencia
- 4. El rastreo de la pila de llamadas nativa Windbg no tiene sentido
- 5. Cómo detectar el desenrollado de la pila en un Destructor
- 6. ¿Cómo se enumera la pila de llamadas de todos los hilos gestionados utilizando WinDBG?
- 7. ¿Cómo puedo examinar el marco de pila con GDB?
- 8. ¿Qué son los registros de llamadas y de llamadas guardadas?
- 9. ¿Qué es el marco de pila en el montaje?
- 10. Pila de llamadas completa para varias tramas JS en IE8
- 11. ¿Cómo obtengo una pila de llamadas en Haskell?
- 12. ¿Cómo puedo obtener la pila de llamadas en Clojure?
- 13. Problema de depuración de C#: no se cargan símbolos para ningún marco de pila de llamadas
- 14. x86_64 convenciones de llamadas y marcos de pila
- 15. Cambie el valor de un atributo específico
- 16. Ventana de pila de llamadas siempre vacía
- 17. Xcode: seguimiento de la pila de llamadas en assert?
- 18. Imprimir la pila de llamadas actual de un método en el código de Python
- 19. ¿Dónde asigna CUDA el marco de pila para los granos?
- 20. ¿Cómo vincular a una versión de marco específico en Xcode?
- 21. Dibujando un marco de pila para el ensamblaje x86
- 22. valor de una variable utilizando WinDbg
- 23. ¿Cómo puedo localizar las variables de Perl en un marco de pila diferente?
- 24. ¿Cómo puedo navegar por la pila de llamadas en Visual Studio usando solo el teclado?
- 25. No hay pila de llamadas en Excepción en xCode 4
- 26. No se puede evaluar la expresión porque un marco nativo está en la parte superior de la pila de llamadas
- 27. "[Función de peso liviano]" en la pila de llamadas
- 28. Detectar el modelo específico de iPhone/iPod touch en Javascript
- 29. Obtener pila de llamadas desde cualquier subproceso dentro de C
- 30. ¿Cómo agregar nuevos campos y registros a la base de datos de registros de llamadas (historial de llamadas)?
Got it. Solo puedo encontrar los registros en la pila indirectamente. –