Ahora mismo he estado usando GDB para desarmar un archivo binario y ver diferentes registros y otras cosas. ¿Hay un comando fácil para examinar todo en la pila? ¿Puede esto limitarse a todo en una función?¿Cómo puedo examinar el marco de pila con GDB?
Respuesta
Para el marco de pila actual:
- información marco listas de información general sobre el marco (donde las cosas comienzan en la memoria, etc.)
- información args listas de argumentos de la función
- info locals enumera las variables locales almacenadas en el marco
bt
(obacktrace
) le dará una pila de llamadas.frame <args>
le dará información sobre un marco específico de la pila.info locals
puede darle información sobre cualquier variable local en la pila.
Puede ver el contenido de la pila con x/10x $sp
Esto imprimirá los 10 elementos superiores de la pila.
¿Qué versión de GDB es esto? No puedo hacer que gdb use registros como argumentos de comando en GDB 7.7-0ubuntu3.1 – nightpool
@nightpool funciona para mí en 7.7.1-0ubuntu5 ~ 14.04.2 –
Esta es la respuesta que le dice cómo se ven los bytes en la pila marco, que he tenido problemas para descubrir cómo hacerlo. ¡Gracias! –
- 1. ¿Cómo determina GDB la parte inferior de la pila?
- 2. ¿Cómo puedo obtener el seguimiento de la pila lua desde un archivo central utilizando gdb
- 3. cómo se puede ver el contenido de la pila con gdb
- 4. ¿Cómo puedo examinar el bytecode JVM para una función clojure?
- 5. ¿Cómo puedo examinar el ensamblaje en Xcode 4?
- 6. ¿Cómo puedo aumentar el tamaño de la pila con runhaskell?
- 7. Cómo deshabilitar el directorio Examinar en Web.Config
- 8. ¿Cómo puedo usar "ver" GDB?
- 9. ¿Cómo puedo examinar todo el árbol de fuentes con un procesador de anotaciones?
- 10. ¿Qué es el marco de pila en el montaje?
- 11. Cómo aplicar CSS para examinar el botón
- 12. ¿Cómo se usa gdb?
- 13. ¿cómo puedo ver el seguimiento de la pila después de que se mata el proceso?
- 14. Marco de pila completo para Java
- 15. ¿Dónde asigna CUDA el marco de pila para los granos?
- 16. ¿Este marco de pila producido es el correcto?
- 17. GDB Descanso si el marco está en traza inversa
- 18. ¿Cómo puedo localizar las variables de Perl en un marco de pila diferente?
- 19. Dibujando un marco de pila para el ensamblaje x86
- 20. Uso de GDB para inspeccionar la pila de la máquina
- 21. ¿Cómo puedo hacer que gdb guarde el historial de comandos?
- 22. ¿Cómo puedo obligar a GDB a desmontar?
- 23. ¿Cómo puedo depurar fallas St9bad_alloc en gdb en C?
- 24. cómo comenzar con el marco de resorte
- 25. gdb: Programa salido con el código 030000000375
- 26. ¿Cómo ejecutar gdb con LD_PRELOAD?
- 27. ¿cómo examinar el archivo C++ .o bajo Linux?
- 28. ¿Cómo puedo examinar el contenido de una sección de datos de un archivo ELF en Linux?
- 29. Cómo usar gdb con LD_PRELOAD
- 30. plantillas de depuración con GDB
Esto debería ser de alguna ayuda para usted: http://cs.nyu.edu/courses/spring07/V22.0474-001/misc/gdb-refcard.pdf. Siempre puede usar el comando "marco" para saltar entre los cuadros. – dicaprio