pmap -X 报告的虚拟内存映射不是来自 mmap 系统调用

Virtual memory mapping reported by pmap -X does not come from mmap system call

提问人:Some Name 提问时间:11/17/2023 更新时间:11/17/2023 访问量:12

问:

我遇到了进程内存消耗过多的问题,并尝试捕获系统调用和堆栈跟踪,以掌握谁映射了内存。所以运行我让 strace 捕获了所有线程的所有系统调用。stracestrace -f myapp

查看时,我发现有 2 个映射,其中 地址和 .当处理地址的输出时,我只得到以下结果:pmap -X <pid>RSS0x7d516c0000000x7d5198000000grepstrace

$ grep 7d5198000000 strace.txt 
[pid  9734] mprotect(0x7d5198000000, 135168, PROT_READ|PROT_WRITE) = 0

$ grep 7d516c000000 strace.txt 
[pid  9738] mprotect(0x7d516c000000, 135168, PROT_READ|PROT_WRITE) = 0

因此,看起来虚拟地址不是来自系统调用。mmap

我注意到这两个电话都来自 ,但地址怎么可能不是来自 ?mprotectmalloc/arena.cmmap

c linux 内存管理 malloc 系统调用

评论


答: 暂无答案