Ferramentas para visualizar / editar a memória do espaço do usuário dos processos em execução?

6

Existe alguma ferramenta para visualizar / editar a memória do espaço do usuário dos processos em execução no Linux?

Seria uma ótima ferramenta de aprendizado.

    
por Olivier Lalonde 03.11.2010 / 00:16

1 resposta

5

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.

    
por 03.11.2010 / 01:09