
¿Existen herramientas para ver/editar la memoria del espacio de usuario de los procesos en ejecución en Linux?
Sería una gran herramienta de aprendizaje.
Respuesta1
La memoria de un proceso está disponible como el archivo /proc/12345/mem
donde 12345 es el ID del proceso. Sin embargo, todavía no podrás aprender nada directamente de él por un tiempo. Lo primero que hay que averiguar es qué partes están mapeadas; esta información está disponible en /proc/12345/maps
y /proc/12345/smaps
. Las entradas /proc
están documentadas en la documentación del kernel enDocumentation/filesystems/proc.txt
. El lsof
comando brindará información sobre los archivos que el proceso ha asignado a la memoria de una manera más legible.
Puede resultar más instructivo observar el proceso en ejecución con un depurador. El depurador habitual en Linux esBgd. Gdb tiene una interfaz de línea de comando simple;DDDyEmacsProporcionar interfaces más fáciles de usar. Para obtener mejores resultados, mire un programa que todavía tenga símbolos de depuración y cuya fuente esté disponible (es decir, mire un programa que acaba de compilar -g
y no ha eliminado).
También debe saber cómo strace
observar las llamadas al sistema que realiza un proceso y ltrace
cómo observar (algunas) llamadas a la biblioteca.