【问题标题】:Need a way to identify the anonymous map shown in pmap需要一种方法来识别 pmap 中显示的匿名地图
【发布时间】:2015-02-03 08:45:29
【问题描述】:

pmap -d 显示映射到匿名映射的 1.1GB。

debian:~# pmap -d 1598 | more
1598:   /usr/bin/X :0 -br -nocursor -auth /tmp/serverauth.O1gWpWvWuP
Address   Kbytes Mode  Offset           Device    Mapping
08048000    1644 r-x-- 0000000000000000 008:00001 Xorg
081e3000      48 rw--- 000000000019b000 008:00001 Xorg
081ef000      44 rw--- 0000000000000000 000:00000   [ anon ]
08231000 1164236 rw--- 0000000000000000 000:00000   [ anon ]
b5422000    3752 rw--- 0000000000000000 000:00000   [ anon ]
b59a1000     384 rw-s- 0000000000000000 000:00004   [ shmid=0x520000 ]

我需要一种方法来识别占用 1.1GB 的地址 08231000 的所有者。请帮忙。

【问题讨论】:

    标签: memory-management pmap


    【解决方案1】:

    它不是一个匿名进程,它是一个匿名内存区域。

    输出中的所有内存区域都由您在命令行中指定其 pid 的进程“拥有”(即1598)。在这种情况下看起来是Xorg

    这一行提到[ anon ]的事实是因为这个内存块是匿名映射的,它只是这个进程的本地内存,与例如相反。 shmid=... 块是共享内存。

    要使用这个 pid 查找进程,只需这样做

     # ps -fq 1598
    

    但你可能会发现它是进程Xorg

    【讨论】:

    • 是的,它是一个匿名的内存区域。在我发布它并继续阅读 pmap 后我意识到了这一点。因此,Xorg 在本地拥有它。但是,我最初的问题是为什么 Xorg 需要 1.1GB。我的内存只有 512MB。而且我在 IceWM 下只运行一个 GTK 应用程序。实际上,我最初的问题发布在 link 中。如果你能抽出一些时间,请帮助我。
    • 哇,您在链接上的问题实际上要好得多;-) 还有更多关于主题的内容。所以如果你不介意,我会在那里回答。
    • 很高兴。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-18
    • 1970-01-01
    • 1970-01-01
    • 2019-12-26
    相关资源
    最近更新 更多