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 framepara mostrar la información del marco de la pilaPara leer la memoria en direcciones dadas, debe echar un vistazo a
xx/x $esppara hexadecimalx/d $esppara firmadox/u $esppara 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 $eipetc.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