comando do procmap
Propósito
Imprime o mapa de espaço de endereços de processos.
Sintaxe
procmap [ -F ] [ -S ] { -X [-f] [-n] [-u] [-q]}] ProcessID ...
Descrição
O sistema de arquivos /proc fornece um mecanismo para controlar processos. Ele também dá acesso a informações sobre o estado atual de processos e threads, mas em forma binária. Os comandos do proctools fornecem ascii relatórios com base em algumas das informações disponíveis.
A maioria dos comandos recebe uma lista de IDs de processo ou strings /proc/ ProcessID como entrada. A expansão da shell /proc/ * pode, portanto, ser usada para especificar todos os processos no sistema.
Cada um dos comandos do proctools reúne informações de /proc para os processos especificados e exibe-o ao usuário. Os comandos proctools como o procrun e procstopiniciam e param um processo usando a interface /proc .
As informações reunidas pelos comandos a partir de /proc são um instantâneo do estado atual dos processos e, portanto, podem variar em qualquer instante, exceto para processos parados.
O comando procmap imprime o mapa de espaço de endereços dos processos. Ele exibe o endereço inicial e o tamanho de cada um dos segmentos mapeados no processo. Ele obtém todas as informações necessárias dos arquivos /proc/ ProcessID /map.
Sinalizações
| Item | Descrição |
|---|---|
| -F | Força o comando procmap a assumir o controle do processo de destino mesmo que outro processo tenha controle. |
| -S | Exibe informações de memória compartilhada do processo de destino. Nota: A opção -S está obsoleta. Você pode usar a opção -X para funcionalidades semelhantes.
|
| -X | Exibe informações estendidas sobre cada faixa de endereço e inclui todos os objetos mapeados do processo de destino. |
| -n | Exibe faixas de endereço não classificadas para os segmentos mapeados do processo de destino. |
| -u | Exibe os valores na unidade mais apropriada. A unidade usada no relatório é especificada para cada métrica. |
| -q | Suprime as informações do cabeçalho. |
| -f | Exibe o nome do filename em vez do número do dispositivo e número de inode para o arquivo mapeado do processo de destino. A coluna OBJETO MAPEADO para os arquivos mapeados exibe um dos seguintes valores:
|
| ProcessID | Especifica o id do processo. |
| Item | Descrição |
|---|---|
| Start-ADD | Endereço inicial da região da memória. |
| End-ADD | Endereço final da região da memória. |
| SIZE | Tamanho da região da memória. |
| MODE | Ler, escrever e executar permissão da região da memória. |
| PSIZ | Tamanho da página da região da memória. Os valores a seguir são exibidos: |
| s | 4K Tamanho da página |
| m | 64K Tamanho da página |
| L | 16M Tamanho da página |
| H | 16GB Tamanho da página |
| TYPE | Tipo da região da memória. Os valores a seguir são exibidos: |
| HEAP | Região do heap |
| KER/LDR | Outros Segmentos Kernel / Carregader |
| KERTXT | Texto do kernel |
| MAINDATA | Principal Data/BSS para o processo |
| MAINTEXT | Principais Executáveis para o processo |
| MFILE | Arquivo de mapa |
| PLIBDATA | Dados da Biblioteca Privada |
| PLIBTEXT | Texto da Biblioteca Privada |
| PMMAP | Mapa de Memória Privada |
| PMMFILE | Arquivo do Mapa de Memória |
| PMMPSXRT | Private POSIX Mapa de Memória Compartilhado Real Time |
| REALMEM | Memória Real Mapeada |
| SHM | Memória compartilhada |
| SHMEXT | Memória compartilhada estendida |
| SHMFILE | Arquivo de Memória Compartilhada |
| SLIBDATA | Dados da Biblioteca Compartilhada |
| SLIBTEXT | Texto da Biblioteca Compartilhada |
| SMMAP | Mapa de Memória Compartilhada |
| SMMFILE | Arquivo do Mapa de Memória |
| SMMPSXRT | Compartilhado POSIX Real Time Shared Memory |
| STACK | Região da pilha |
| VSID | Segmento Virtual ID da região de memória. |
| MAPPED OBJECT | Nome do objeto mapeado. |
Exemplos
- Para exibir o espaço de endereço do processo 12644, digite:
A saída deste comando pode ficar assim:procmap 1264412644 : -ksh 10000000 232K read/exec ksh 20000ef8 54K read/write ksh d008b100 80K read/exec /usr/lib/libiconv.a[shr4.0] f03e4c70 41K read/write /usr/lib/libiconv.a[shr4.o] d0080100 40K read/exec /usr/lib/libi18n.a[shr.o] f03f0b78 4K read/write /usr/lib/libi18n.a[shr.o] d007a000 11K read/exec /usr/lib/nls/loc/en_US d007d130 8K read/write /usr/lib/nls/loc/en_US d00790f8 2K read/exec /usr/lib/libcrypt.a[shr.o] f03e3508 0K read/write /usr/lib/libcrypt.a[shr.o] d02156c0 2282K read/exec /usr/lib/libc.a[shr.o] f03474e0 621K read/write /usr/lib/libc.a[shr.o] Total 3380K - Para exibir os intervalos de endereços de processo com PID 1573580, digite:
# procmap -X 1573580 1573580 : ./self_mod_32 Start-ADD End-ADD SIZE MODE PSIZ TYPE VSID MAPPED OBJECT 0 10000000 262144K r-- m KERTXT 20002 10000000 10001d33 7K rwx sm MAINTEXT 1730DF3 self_mod_32 200001d0 200007fc 1K rw- sm MAINDATA 4F0CCF self_mod_32 200007fc 20011000 66K rw- sm HEAP 4F0CCF 20011000 20011685 1K rwx sm PLIBTEXT 4F0CCF ./libself_priv.a[dl_prv32.o] 20011685 2001234c 3K rw- sm HEAP 4F0CCF 2001234c 200125c4 0K rw- sm PLIBDATA 4F0CCF ./libself_priv.a[dl_prv32.o] 200125c4 20013000 2K rw- sm HEAP 4F0CCF 20013000 2ff23000 261184K rw- sm STACK 4F0CCF 30000000 30001000 4K rw- sm SMMFILE 8C0C0C dev:10,7 ino:35 30001000 30002000 4K r-- sm SMMFILE 8C0C0C dev:10,7 ino:36 30002000 30003000 4K rw- sm PMMFILE 8C0C0C dev:10,7 ino:35 30003000 30004000 4K r-- sm PMMFILE 8C0C0C dev:10,7 ino:36 30004000 30005000 4K rw- sm SMMPSXRT 8C0C0C POSIX RT SHM 1 30005000 30006000 4K r-- sm SMMPSXRT 8C0C0C POSIX RT SHM 1 30006000 30007000 4K rw- sm PMMPSXRT 8C0C0C POSIX RT SHM 2 30007000 30008000 4K r-- sm PMMPSXRT 8C0C0C POSIX RT SHM 2 30008000 30009000 4K rw- sm SMMAP 8C0C0C 30009000 3000a000 4K r-- sm SMMAP 8C0C0C 3000a000 3000b000 4K rw- sm PMMAP 8C0C0C 3000b000 3000c000 4K r-- sm PMMAP 8C0C0C 40000000 40000000 0K rw- s SHMFILE 250CA5 dev:10,7 ino:35 50000000 50000000 0K r-- s SHMFILE 1960D16 dev:10,7 ino:36 60000000 60001000 4K rw- sm SHM D0C8D shmid:16 70000000 70001000 4K r-- sm SHM 11F0D9F shmid:17 d0100100 d052343c 4236K rwx m SLIBTEXT 3010B81 /usr/lib/libc.a[shr.o] d0564100 d0564abe 2K rwx m SLIBTEXT 3010B81 /usr/lib/libcrypt.a[shr.o] d0652100 d0653654 5K rwx m SLIBTEXT 3010B81 ./libself.a[support32.o] d0654380 d0654a02 1K rwx m SLIBTEXT 3010B81 ./libself.a[shr32.o] d0655a80 d0656105 1K rwx m SLIBTEXT 3010B81 ./libself.a[dl_shr32.o] f05935cc f0593844 0K rw- sm PLIBDATA 17F0DFF ./libself.a[shr32.o] f06a5b6f f06a60c0 1K rw- sm PLIBDATA 17F0DFF ./libself.a[support32.o] f07b4ccc f07b4f44 0K rw- sm PLIBDATA 17F0DFF ./libself.a[dl_shr32.o] f07dfbb0 f08b7388 861K rw- sm PLIBDATA 17F0DFF /usr/lib/libc.a[shr.o] f08b86a8 f08b87c8 0K rw- sm PLIBDATA 17F0DFF /usr/lib/libcrypt.a[shr.o] Total 528579K - Para exibir os intervalos de endereços com associação de nome de arquivo para o arquivo mapeado de processo com PID 2031848, digite:
# procmap -Xf 2031848 2031848 : ./self_mod_64 Start-ADD End-ADD SIZE MODE PSIZ TYPE VSID MAPPED OBJECT 0 10000000 262144K r-- m KERTXT 20002 100000000 100002058 8K rwx sm MAINTEXT 3C0CBC self_mod_64 1100002d0 1100009e0 1K rw- sm MAINDATA 240CA4 self_mod_64 1100009e0 110010a00 64K rw- sm HEAP 240CA4 800000000000e80 8000000000012eb 1K rwx sm PLIBTEXT 5A0CDA ./libself_priv.a[dl_prv64.o] 8001000a0000180 8001000a00001c0 0K rw- sm PLIBDATA 16A0DEA ./libself_priv.a[dl_prv64.o] 800200140000000 80020014003d000 244K r-- sm KER/LDR 2A20E22 8fffffff0000000 900000000000000 262144K r-- s KER/LDR 530CD3 900000000000e00 900000000440541 4349K rwx m SLIBTEXT 28C0E0C /usr/lib/libc.a[shr_64.o] 900000000466400 900000000466f43 2K rwx m SLIBTEXT 28C0E0C /usr/lib/libcrypt.a[shr_64.o] 900000000467980 900000000468e98 5K rwx m SLIBTEXT 28C0E0C ./libself.a[support64.o] 900000000469100 900000000469568 1K rwx m SLIBTEXT 28C0E0C ./libself.a[shr64.o] 90000000046a800 90000000046ac6b 1K rwx m SLIBTEXT 28C0E0C ./libself.a[dl_shr64.o] 9001000a0000580 9001000a010cb88 1073K rw- sm PLIBDATA 12A0DAA /usr/lib/libc.a[shr_64.o] 9001000a010da28 9001000a010dbb8 0K rw- sm PLIBDATA 12A0DAA /usr/lib/libcrypt.a[shr_64.o] 9001000a0137380 9001000a01378b8 1K rw- sm PLIBDATA 12A0DAA ./libself.a[support64.o] 9001000a0248400 9001000a0248440 0K rw- sm PLIBDATA 12A0DAA ./libself.a[shr64.o] 9001000a045ab00 9001000a045ab40 0K rw- sm PLIBDATA 12A0DAA ./libself.a[dl_shr64.o] 900200140000000 900200150000000 262144K r-- s KER/LDR B70037 9ffffffd0000000 9ffffffe0000000 262144K r-- sm KER/LDR 50005 9ffffffe0000000 9fffffff0000000 262144K r-- sm KER/LDR E000E 9fffffff0000000 9fffffff000fa8e 62K rwx s SLIBTEXT 1180198 /usr/ccs/bin/usla64 9fffffff000fa8e 9fffffff000fa8e 0K rw- s PLIBDATA 1180198 /usr/ccs/bin/usla64 a00000000000000 a00000000001000 4K rw- sm SMMFILE 420CC2 /tmp/mmfile1 a00000000001000 a00000000002000 4K r-- sm SMMFILE 420CC2 /tmp/mmfile2 a00000000002000 a00000000003000 4K rw- sm PMMFILE 420CC2 /tmp/mmfile1 a00000000003000 a00000000004000 4K r-- sm PMMFILE 420CC2 /tmp/mmfile2 a00000000004000 a00000000005000 4K rw- sm SMMPSXRT 420CC2 POSIX RT SHM 1 a00000000005000 a00000000006000 4K r-- sm SMMPSXRT 420CC2 POSIX RT SHM 1 a00000000006000 a00000000007000 4K rw- sm PMMPSXRT 420CC2 POSIX RT SHM 2 a00000000007000 a00000000008000 4K r-- sm PMMPSXRT 420CC2 POSIX RT SHM 2 a00000000008000 a00000000009000 4K rw- sm SMMAP 420CC2 a00000000009000 a0000000000a000 4K r-- sm SMMAP 420CC2 a0000000000a000 a0000000000b000 4K rw- sm PMMAP 420CC2 a0000000000b000 a0000000000c000 4K r-- sm PMMAP 420CC2 a00010000000000 a00010000000000 0K rw- s SHMFILE 250CA5 /tmp/mmfile1 a00010010000000 a00010010000000 0K r-- s SHMFILE 1960D16 /tmp/mmfile2 a00020000000000 a00020000001000 4K rw- sm SHM 5B0CDB shmid:18 a00030000000000 a00030000001000 4K r-- sm SHM 1980D18 shmid:19 fffffff00000000 1000000000000000 4194304K rw- sm STACK 10D0D8D Total 5510897K
Arquivos
| Item | Descrição |
|---|---|
| /proc | Contém o /proc filesystem. |