为什么pmap显示strace没有的映射?

我正在调查(意外地)保留数TB VIRT的进程的内存使用情况。如果我为该过程做pmap,我会看到一些强大的分配,例如:

00007f39ea671000 317288696K rw---   [ anon ]

我正在strace下运行我的进程,以跟踪所有与内存相关的syscall并使用其stracktrace。

strace -o ~/strace.out -f -e trace=mremap,mmap,munmap,brk -k <command>

我希望我能够在strace.out中找到此分配,所以我将其分配为:

cat strace.out | grep -A10 7f39ea671000

我只看到对mmap的呼叫:

106224 mmap(NULL,201543680,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS,-1,0) = 0x7f39ea671000
 > /usr/lib/x86_64-linux-gnu/libc-2.29.so(mmap64+0x22) [0xf5252]
 > /usr/lib/x86_64-linux-gnu/libc-2.29.so(_IO_str_seekoff+0x2ff4) [0x84ab4]
 > /usr/lib/x86_64-linux-gnu/libc-2.29.so(_IO_str_seekoff+0x3e0b) [0x858cb]
 > /usr/lib/x86_64-linux-gnu/libc-2.29.so(__libc_malloc+0x22f) [0x869ff]
...

这是怎么回事? pmap是否显示映射的放大大小?还是我想念一些系统调用?

jiandan103 回答:为什么pmap显示strace没有的映射?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3045366.html

大家都在问