2010-05-05 10 views
52

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?

+2

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

Respuesta

55

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
38
  • bt (o backtrace) 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.

74

Puede ver el contenido de la pila con x/10x $sp

Esto imprimirá los 10 elementos superiores de la pila.

+0

¿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

+1

@nightpool funciona para mí en 7.7.1-0ubuntu5 ~ 14.04.2 –

+0

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! –

Cuestiones relacionadas