De acordo com a documentação , /proc/PID/pagemap
contém um valor de 64 bits para cada virtual página.
Com páginas de 4096 bytes e um espaço de endereço virtual de 64 bits, há 2**52
páginas. Portanto, o arquivo pagemap
completo será 2**52
de entradas de 8 bytes cada. Esse é um arquivo muito grande. Catting a coisa toda vai demorar muito tempo. Não 2 minutos. Muito tempo. Um teste de velocidade no meu computador sugere cerca de 21 anos.
E, na maioria das vezes, ele será preenchido com zeros (para todos os endereços virtuais que não estão mapeados no processo). Um monte de saída de
para um terminal não causa nenhum efeito visível. Não está pendurado, está fazendo o que você pediu. /proc/PID/maps
Não é um arquivo de texto, portanto, as entradas que não são zero provavelmente não ficarão bem no seu terminal.
O jeito certo de usar o arquivo pagemap é saber qual endereço virtual você está procurando, procurar e ler 8 bytes. Ou se você quiser informações para um intervalo, leia um múltiplo de 8 bytes. Se você quiser todas as entradas diferentes de zero, primeiro leia %code% para descobrir quais intervalos são mapeados.