且听风吟

Don't panic! I'm a programmer.

Pmap介绍

| Comments

pmap用来打印进程地址空间占用。通常也可以通过如下命令来查看:

cat /proc/self/maps 

但用pmap包含更多的信息,显示结果也更直观:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
$ pmap -d 4827
    4827:   bash
    Address           Kbytes Mode  Offset           Device    Mapping
    0000000000400000     896 r-x-- 0000000000000000 008:00005 bash
    00000000006e0000       4 r---- 00000000000e0000 008:00005 bash
    00000000006e1000      36 rw--- 00000000000e1000 008:00005 bash
    00000000006ea000      24 rw--- 0000000000000000 000:00000   [ anon ]
    0000000001a8d000    5388 rw--- 0000000000000000 000:00000   [ anon ]
    00007f1c6c5cd000      48 r-x-- 0000000000000000 008:00005 libnss_files-2.15.so
    00007f1c6c5d9000    2044 ----- 000000000000c000 008:00005 libnss_files-2.15.so
    00007f1c6c7d8000       4 r---- 000000000000b000 008:00005 libnss_files-2.15.so
    00007f1c6c7d9000       4 rw--- 000000000000c000 008:00005 libnss_files-2.15.so
    00007f1c6c7da000      40 r-x-- 0000000000000000 008:00005 libnss_nis-2.15.so
    00007f1c6c7e4000    2048 ----- 000000000000a000 008:00005 libnss_nis-2.15.so
    00007f1c6c9e4000       4 r---- 000000000000a000 008:00005 libnss_nis-2.15.so
    00007f1c6c9e5000       4 rw--- 000000000000b000 008:00005 libnss_nis-2.15.so
    00007f1c6c9e6000      92 r-x-- 0000000000000000 008:00005 libnsl-2.15.so
    00007f1c6c9fd000    2044 ----- 0000000000017000 008:00005 libnsl-2.15.so
    00007f1c6cbfc000       4 r---- 0000000000016000 008:00005 libnsl-2.15.so
    00007f1c6cbfd000       4 rw--- 0000000000017000 008:00005 libnsl-2.15.so
    00007f1c6cbfe000       8 rw--- 0000000000000000 000:00000   [ anon ]
    00007f1c6cc00000      32 r-x-- 0000000000000000 008:00005 libnss_compat-2.15.so
    00007f1c6cc08000    2044 ----- 0000000000008000 008:00005 libnss_compat-2.15.so
    00007f1c6ce07000       4 r---- 0000000000007000 008:00005 libnss_compat-2.15.so
    00007f1c6ce08000       4 rw--- 0000000000008000 008:00005 libnss_compat-2.15.so
    00007f1c6ce09000    7052 r---- 0000000000000000 008:00005 locale-archive
    00007f1c6d4ec000    1748 r-x-- 0000000000000000 008:00005 libc-2.15.so
    00007f1c6d6a1000    2048 ----- 00000000001b5000 008:00005 libc-2.15.so
    00007f1c6d8a1000      16 r---- 00000000001b5000 008:00005 libc-2.15.so
    00007f1c6d8a5000       8 rw--- 00000000001b9000 008:00005 libc-2.15.so
    00007f1c6d8a7000      20 rw--- 0000000000000000 000:00000   [ anon ]
    00007f1c6d8ac000       8 r-x-- 0000000000000000 008:00005 libdl-2.15.so
    00007f1c6d8ae000    2048 ----- 0000000000002000 008:00005 libdl-2.15.so
    00007f1c6daae000       4 r---- 0000000000002000 008:00005 libdl-2.15.so
    00007f1c6daaf000       4 rw--- 0000000000003000 008:00005 libdl-2.15.so
    00007f1c6dab0000     136 r-x-- 0000000000000000 008:00005 libtinfo.so.5.9
    00007f1c6dad2000    2048 ----- 0000000000022000 008:00005 libtinfo.so.5.9
    00007f1c6dcd2000      16 r---- 0000000000022000 008:00005 libtinfo.so.5.9
    00007f1c6dcd6000       4 rw--- 0000000000026000 008:00005 libtinfo.so.5.9
    00007f1c6dcd7000     136 r-x-- 0000000000000000 008:00005 ld-2.15.so
    00007f1c6ded7000      12 rw--- 0000000000000000 000:00000   [ anon ]
    00007f1c6def0000      28 r--s- 0000000000000000 008:00005 gconv-modules.cache
    00007f1c6def7000       8 rw--- 0000000000000000 000:00000   [ anon ]
    00007f1c6def9000       4 r---- 0000000000022000 008:00005 ld-2.15.so
    00007f1c6defa000       8 rw--- 0000000000023000 008:00005 ld-2.15.so
    00007fffe147d000     132 rw--- 0000000000000000 000:00000   [ stack ]
    00007fffe15ff000       4 r-x-- 0000000000000000 000:00000   [ anon ]
    ffffffffff600000       4 r-x-- 0000000000000000 000:00000   [ anon ]
    mapped: 30276K    writeable/private: 5668K    shared: 28K

可以看出,这个进程的虚拟地址空间大小微30276k,实际占用的物理内存微5668k。

Comments