我试图使用pmap -x命令查看Linux x86-64上进程的内存映射。我看到pmap的输出感到困惑。特别是用于映射动态库的条目。他们有多个条目(实际上是所有大多数的4个,其中有一些有3个条目)。以下是一个例子
Address Kbytes RSS Dirty Mode Mapping
00000036ca200000 88 64 0 r-x-- libpthread-2.5.so
00000036ca216000 2044 0 0 ----- libpthread-2.5.so
00000036ca415000 4 4 4 r---- libpthread-2.5.so
00000036ca416000 4 4 4 rw--- libpthread-2.5.so
每个图书馆的第二行总是具有2MB的大小,而没有页面许可。在所有的图书馆看来,它的RSS一直都是零。最后两行也具有相同的大小(这是基本页面大小)和相同的权限(少量库没有rw映射)。
有人有一些解释吗?我有一种感觉,可能与只读保护的映射是由加载程序完成的,以读取库的元数据,而具有可执行权限的部分实际上是库的代码。我可能错了。
但是我并不知道中间排。没有权限,没有用法?任何人在这里有一些智慧的话?
我也看到几页报告在匿名内存,没有任何模式位设置。这些代表什么?
1万+

被折叠的 条评论
为什么被折叠?



