/proc/XXX/smaps 不存在

/proc/XXX/smaps 不存在

我正在尝试调试 ubuntu 服务器上发生的事情。我尝试使用我的老朋友 smem,但它没有显示任何内容,即使以 root 身份运行。strace 显示了罪魁祸首:

open("/proc/32376/smaps", O_RDONLY)     = -1 ENOENT (No such file or directory)

我开始尖叫和踢打。希望服务器不在我的办公室,否则它会遭受严重损坏。

也许有人知道为什么 smaps 文件不存在于这个盒子上?(我在 64 位盒子上运行 2.6.38 内核,所以它应该在这里,真的)

马蒂厄

答案1

我无法发表评论,因为我刚刚注册了我的帐户,但是答案@用户1979289是正确的;不确定为什么人们会否决它。

根据 Linux 内核文档:

CONFIG_PROC_PAGE_MONITOR:

Various /proc files exist to monitor process memory utilization:
/proc/pid/smaps, /proc/pid/clear_refs, /proc/pid/pagemap, 
/proc/kpagecount, and /proc/kpageflags. Disabling these interfaces
will reduce the size of the kernel by approximately 4kb.

答案2

来自proc(5) 手册页

仅当启用 CONFIG_MMU 内核配置选项时,此文件才会存在。

config-检查内核配置以查看此选项是否启用(在/boot/或 中查找文件/proc/config.gz):

% grep CONFIG_MMU /boot/config-$(uname -r)\
CONFIG_MMU=y
CONFIG_MMU_NOTIFIER=y

答案3

应启用内核配置:

配置_PROC_PAGE_MONITOR

相关内容