
Existem ferramentas para visualizar/editar a memória do espaço do usuário de processos em execução no Linux?
Seria uma ótima ferramenta de aprendizado.
Responder1
A memória de um processo está disponível como o arquivo /proc/12345/mem
onde 12345 é o ID do processo. No entanto, você ainda não poderá aprender nada diretamente com ele por um tempo. A primeira coisa a descobrir é quais partes estão mapeadas; esta informação está disponível em /proc/12345/maps
e /proc/12345/smaps
. As entradas /proc
estão documentadas na documentação do kernel emDocumentation/filesystems/proc.txt
. O lsof
comando fornecerá informações sobre os arquivos que o processo mapeou na memória de uma forma mais legível.
Pode ser mais instrutivo observar o processo em execução com um depurador. O depurador usual no Linux éGdb. Gdb possui uma interface de linha de comando simples;DDDeEmacsfornecer interfaces mais amigáveis. Para obter melhores resultados, observe um programa que ainda possua símbolos de depuração e cuja fonte esteja disponível (ou seja, observe um programa que você acabou de compilar -g
e que ainda não foi removido).
Você também deve saber como strace
observar as chamadas do sistema que um processo está fazendo e ltrace
como observar (algumas) chamadas da biblioteca.