procmap 命令
用途
显示进程的地址空间映射。
语法
procmap [ -F ] [ -S ] { -X [-f] [-n] [-u] [-q]}] ProcessID ...
描述
/proc 文件系统提供了控制进程的机制。 还提供了针对进程和线程当前状态信息的访问权,但是采用二进制格式。 proctools 命令提供基于一些可用信息的 ascii 报告。
许多命令将进程标识的列表或者 /proc/ ProcessID 字符串作为输入。 shell 扩展 /proc/* 因此可用于指定系统中的所有进程。
每个 proctools 命令自 /proc 为指定的进程收集信息并将它显示给用户。 proctools 命令(例如,procrun 和 procstop)使用 /proc 接口来启动和停止进程。
命令从 /proc 中收集的信息是当前进程状态的快照,因此可能在任何时刻都不相同,除了已停止的进程之外。
procmap 命令显示进程的地址空间映射。 它显示进程的起始地址和每个映射段的大小。 它从 /proc/ProcessID/map 文件获取全部必要信息。
标志
| 项 | 描述 |
|---|---|
| -f | 强制 procmap 命令控制目标进程,即使另一个进程在控制。 |
| -S | 显示目标进程的共享内存信息。 注: -S 选项已过时。 可以使用 -X 选项来实现相似的功能。
|
| -X | 显示有关每个地址范围的扩展信息,并且包括目标进程的所有映射对象。 |
| -n | 显示目标进程的映射段的未排序的地址范围。 |
| -U | 以最适当的单位显示值。 为每个度量值指定报告所使用的单位。 |
| -q | 抑制头信息。 |
| -f | 显示目标进程的映射文件的文件名,而不是显示设备号和索引节点号。 映射文件的映射对象列显示下列其中一个值:
|
| ProcessID | 指定进程标识。 |
以下是对具有 -X 标志的列内容的简要描述:
| 项 | 描述 |
|---|---|
| Start-ADD | 内存区域的开始地址。 |
| End-ADD | 内存区域的结束地址。 |
| SIZE | 内存区域的大小。 |
| MODE | 内存区域的读取、写入和执行许可权。 |
| PSIZ | 内存区域的页大小。 将显示以下数值: |
| s | 4K 页大小 |
| m | 64K 页大小 |
| L | 16M 页大小 |
| H | 16GB 页大小 |
| TYPE | 内存区域的类型。 将显示以下数值: |
| HEAP | 堆区域 |
| KER/LDR | 其他内核/装入器段 |
| KERTXT | 内核文本 |
| MAINDATA | 进程的主要数据/BSS |
| MAINTEXT | 进程的主要可执行文件 |
| MFILE | 映射文件 |
| PLIBDATA | 私有库数据 |
| PLIBTEXT | 私有库文本 |
| PMMAP | 私有内存映射 |
| PMMFILE | 私有内存映射文件 |
| PMMPSXRT | 私有 POSIX 实时共享内存映射 |
| REALMEM | 已映射的实内存 |
| SHM | 共享内存 |
| SHMEXT | 扩展共享内存 |
| SHMFILE | 共享内存文件 |
| SLIBDATA | 共享库数据 |
| SLIBTEXT | 共享库文本 |
| SMMAP | 共享内存映射 |
| SMMFILE | 共享内存映射文件 |
| SMMPSXRT | 共享 POSIX 实时共享内存 |
| STACK | 堆栈区域 |
| VSID | 内存区域的虚拟段标识 |
| MAPPED OBJECT | 映射对象名称。 |
示例
- 要显示进程 12644 的地址空间,请输入:
此命令的输出类似如下: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 - 要显示具有 PID 1573580 的进程的地址范围,请输入:
# 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 - 要显示具有 PID 2031848 的进程的地址范围和映射文件的文件名关联,请输入:
# 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
文件
| 项 | 描述 |
|---|---|
| /proc | 包含 /proc 文件系统。 |