Soy nuevo en GDB, así que tengo algunas preguntas:
¿Cómo puedo ver el contenido de la pila? Ejemplo: para ver el contenido del registro, escribo
info registers
. Para la pila, ¿cuál debería ser?¿Cómo puedo ver el contenido de
$0x4(%esp)
? Cuandoprint /d $0x4(%esp)
escribo, GDB da un error.
Plataforma: Linux y GDB
Respuestas:
info frame
para mostrar la información del marco de la pilaPara leer la memoria en direcciones dadas, debe echar un vistazo a
x
x/x $esp
para hexadecimalx/d $esp
para firmadox/u $esp
para sin firmar, etc. x usa la sintaxis de formato, también puede echar un vistazo a la instrucción actual a través dex/i $eip
etc.fuente
Utilizar:
bt
- backtrace: muestra funciones de pila y argumentosinfo frame
- mostrar punteros de inicio / fin / args / locales de la pilax/100x $sp
- mostrar memoria de pilafuente
Necesita usar los comandos de visualización de memoria de gdb. El básico es
x
, para examinar . Hay un ejemplo en la página vinculada que usapara imprimir "cuatro palabras (
w
) de memoria sobre el puntero de la pila (aquí,$sp
) en hexadecimal (x
)". La cita está ligeramente parafraseada.fuente