Estoy usando una base de datos redis y me gustaría explorar el contenido de la RAM que está usando la aplicación.
Siento que la explicación de por qué quiero hacer esto tendrá más sentido que la pregunta que haría.
Redis es un simple almacén de valores clave que almacena datos binarios. Creo que sería un buen lugar para explorar cosas como la codificación y sería interesante para mí hacer cosas como navegar por la RAM en busca de conjuntos de datos binarios, hacer cosas como buscar patrones simples; tal vez explore la idea de escribir un lenguaje de consulta para bebés que haya buscado en la RAM.
Se me ocurrió esta idea después de leer el capítulo en SICP sobre lenguajes de consulta.
¿Alguna idea sobre por dónde empezar? Inicialmente, quiero preguntar al sistema "Déme el espacio de direcciones en el que se ejecuta esta aplicación, por favor".
pmap
formatea esta información para que sea más legible para los humanos.Use un depurador, para eso están.
Si quieres rodar el tuyo, todo pasa
ptrace
.Puede ver el mapa de memoria de un proceso (la tabla de contenido de la memoria)
/proc/$pid/maps
y leer todo el contenido de la memoria/proc/$pid/mem
. No puede abrir ese último archivo normalmente, vea ¿Cómo leo desde / proc / $ pid / mem en Linux?fuente