A memória de um processo está disponível como o arquivo /proc/12345/mem
, em que 12345 é o ID do processo. Você não poderá aprender nada com ele por um tempo ainda. A primeira coisa a descobrir é quais partes são mapeadas; essas informações estão disponíveis em /proc/12345/maps
e /proc/12345/smaps
. Entradas em /proc
estão documentadas na documentação do kernel em Documentation/filesystems/proc.txt
. O comando lsof
fornecerá informações sobre os arquivos que o processo mapeou na memória de uma forma mais legível.
Pode ser mais instrutivo examinar o processo em execução com um depurador. O depurador usual no Linux é o Gdb . O Gdb possui uma interface de linha de comando simples; DDD e Emacs fornecer interfaces mais amigáveis ao usuário. Para obter melhores resultados, observe um programa que ainda possui símbolos de depuração e cuja origem está disponível (por exemplo, veja um programa que você acabou de compilar com -g
e não removeu).
Você também deve saber sobre strace
para observar as chamadas do sistema que um processo está realizando e ltrace
para assistir (algumas) chamadas à biblioteca.