当前位置: 技术问答>linux和unix
/proc/pid/maps求指教
来源: 互联网 发布时间:2016-06-18
本文导语: # cat /proc/882/maps 00400000-00401000 r-xp 00000000 1f:04 4195720 /bin/debug 代码段:4k 10000000-10001000 rw-p 00001000 1f:04 4195720 /bin/debug 数据段:4k 10001000-10004000 rwxp 10001000 00:00 0 ...
# cat /proc/882/maps
00400000-00401000 r-xp 00000000 1f:04 4195720 /bin/debug 代码段:4k
10000000-10001000 rw-p 00001000 1f:04 4195720 /bin/debug 数据段:4k
10001000-10004000 rwxp 10001000 00:00 0 heap: 12k
2aaa8000-2aaae000 r-xp 00000000 1f:04 831 /lib/ld-uClibc-0.9.27.so 代码: 24k
2aaae000-2aaaf000 rw-p 2aaae000 00:00 0 bss 4k
2aaed000-2aaee000 rw-p 00005000 1f:04 831 /lib/ld-uClibc-0.9.27.so 数据: 4k
2aaee000-2aaf1000 r-xp 00000000 1f:04 1357 /lib/libcommfun.so 代码: 12k
2aaf1000-2ab30000 ---p 2aaf1000 00:00 0 252k
2ab30000-2ab31000 rw-p 00002000 1f:04 1357 /lib/libcommfun.so 数据:4k
2ab31000-2ab4b000 r-xp 00000000 1f:04 802 /lib/libsys.so 代码:104k
2ab4b000-2ab8a000 ---p 2ab4b000 00:00 0 252k
2ab8a000-2ab8c000 rw-p 00019000 1f:04 802 /lib/libsys.so 数据:8k
2ab8c000-2ab90000 rw-p 2ab8c000 00:00 0 16k
2ab90000-2ab9e000 r-xp 00000000 1f:04 1165 /lib/libpthread-0.9.27.so 代码:56k
2ab9e000-2abdd000 ---p 2ab9e000 00:00 0 252k
2abdd000-2abe2000 rw-p 0000d000 1f:04 1165 /lib/libpthread-0.9.27.so 数据:20k
2abe2000-2abe4000 rw-p 2abe2000 00:00 0 8K
2abe4000-2ac44000 r-xp 00000000 1f:04 1344 /lib/libuClibc-0.9.27.so 代码:384k
2ac44000-2ac83000 ---p 2ac44000 00:00 0 252k
2ac83000-2ac86000 rw-p 0005f000 1f:04 1344 /lib/libuClibc-0.9.27.so 数据:12k
2ac86000-2ac8b000 rw-p 2ac86000 00:00 0 20k
7f3fc000-7f400000 rwxp 7f3fc000 00:00 0 16k
7f5fc000-7f600000 rwxp 7f5fc000 00:00 0 16k
7f7fc000-7f800000 rwxp 7f7fc000 00:00 0 16k
7fff6000-7fff8000 rwxp 7fff6000 00:00 0 8k
# cat /proc/882/status
Name: debug
State: S (sleeping)
SleepAVG: 98%
Tgid: 882
Pid: 882
PPid: 97
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 32
Groups:
VmSize: 1760 kB
VmLck: 0 kB
VmRSS: 424 kB
VmData: 1068 kB
VmStk: 56 kB
VmExe: 4 kB 4k
VmLib: 580 kB 库的代码段
Threads: 1
例子如上,各位帅哥还能解释下没有用名字标出来的debug程序在虚拟内存中的各个段是什么,debug实际占用
物理内存424KB,分别代表maps那边的哪几个段。maps我也能大概知道点,就是debug在虚拟内存中的映射,由
代码段和数据段,库组成。我应该怎么区分debug程序的细节的各个段呢,尤其是我怎么区分bss段和栈呢?
另外我想知道的就是程序调用动态库,动态库如果调了一些数据区初始化,这个花的内存的代价也应该放在程序那边还是?
谢谢!!!
00400000-00401000 r-xp 00000000 1f:04 4195720 /bin/debug 代码段:4k
10000000-10001000 rw-p 00001000 1f:04 4195720 /bin/debug 数据段:4k
10001000-10004000 rwxp 10001000 00:00 0 heap: 12k
2aaa8000-2aaae000 r-xp 00000000 1f:04 831 /lib/ld-uClibc-0.9.27.so 代码: 24k
2aaae000-2aaaf000 rw-p 2aaae000 00:00 0 bss 4k
2aaed000-2aaee000 rw-p 00005000 1f:04 831 /lib/ld-uClibc-0.9.27.so 数据: 4k
2aaee000-2aaf1000 r-xp 00000000 1f:04 1357 /lib/libcommfun.so 代码: 12k
2aaf1000-2ab30000 ---p 2aaf1000 00:00 0 252k
2ab30000-2ab31000 rw-p 00002000 1f:04 1357 /lib/libcommfun.so 数据:4k
2ab31000-2ab4b000 r-xp 00000000 1f:04 802 /lib/libsys.so 代码:104k
2ab4b000-2ab8a000 ---p 2ab4b000 00:00 0 252k
2ab8a000-2ab8c000 rw-p 00019000 1f:04 802 /lib/libsys.so 数据:8k
2ab8c000-2ab90000 rw-p 2ab8c000 00:00 0 16k
2ab90000-2ab9e000 r-xp 00000000 1f:04 1165 /lib/libpthread-0.9.27.so 代码:56k
2ab9e000-2abdd000 ---p 2ab9e000 00:00 0 252k
2abdd000-2abe2000 rw-p 0000d000 1f:04 1165 /lib/libpthread-0.9.27.so 数据:20k
2abe2000-2abe4000 rw-p 2abe2000 00:00 0 8K
2abe4000-2ac44000 r-xp 00000000 1f:04 1344 /lib/libuClibc-0.9.27.so 代码:384k
2ac44000-2ac83000 ---p 2ac44000 00:00 0 252k
2ac83000-2ac86000 rw-p 0005f000 1f:04 1344 /lib/libuClibc-0.9.27.so 数据:12k
2ac86000-2ac8b000 rw-p 2ac86000 00:00 0 20k
7f3fc000-7f400000 rwxp 7f3fc000 00:00 0 16k
7f5fc000-7f600000 rwxp 7f5fc000 00:00 0 16k
7f7fc000-7f800000 rwxp 7f7fc000 00:00 0 16k
7fff6000-7fff8000 rwxp 7fff6000 00:00 0 8k
# cat /proc/882/status
Name: debug
State: S (sleeping)
SleepAVG: 98%
Tgid: 882
Pid: 882
PPid: 97
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 32
Groups:
VmSize: 1760 kB
VmLck: 0 kB
VmRSS: 424 kB
VmData: 1068 kB
VmStk: 56 kB
VmExe: 4 kB 4k
VmLib: 580 kB 库的代码段
Threads: 1
例子如上,各位帅哥还能解释下没有用名字标出来的debug程序在虚拟内存中的各个段是什么,debug实际占用
物理内存424KB,分别代表maps那边的哪几个段。maps我也能大概知道点,就是debug在虚拟内存中的映射,由
代码段和数据段,库组成。我应该怎么区分debug程序的细节的各个段呢,尤其是我怎么区分bss段和栈呢?
另外我想知道的就是程序调用动态库,动态库如果调了一些数据区初始化,这个花的内存的代价也应该放在程序那边还是?
谢谢!!!
|
进程栈段处理
http://blog.csdn.net/ShowMan/archive/2009/07/18/4360462.aspx
http://blog.csdn.net/ShowMan/archive/2009/07/18/4360462.aspx