我工作的OS X 10.11,並生成轉儲文件以下列方式:內核轉儲大小比進程的虛擬內存空間不同
1. ulimit -c unlimited
2. kill -10 5228 (process pid)
,並得到轉儲文件與滾動屬性:642M Jun 26 15:00 core.5228
在此之前,我使用vmmap
命令檢查了進程總內存空間,嘗試並估計預期的轉儲大小。
然而,估計(238.7Mb)遠小於實際大小(642Mb)。
可以解釋這個差距嗎?
VIRTUAL REGION
REGION TYPE SIZE COUNT (non-coalesced)
=========== ======= =======
Activity Tracing 2048K 2
Kernel Alloc Once 4K 2
MALLOC guard page 16K 4
MALLOC metadata 180K 6
MALLOC_SMALL 56.0M 4 see MALLOC ZONE table below
MALLOC_SMALL (empty) 8192K 2 see MALLOC ZONE table below
MALLOC_TINY 8192K 3 see MALLOC ZONE table below
STACK GUARD 56.0M 2
Stack 8192K 2
__DATA 1512K 44
__LINKEDIT 90.9M 4
__TEXT 8336K 44
shared memory 12K 4
=========== ======= =======
TOTAL 238.7M 110
VIRTUAL ALLOCATION BYTES REGION
MALLOC ZONE SIZE COUNT ALLOCATED % FULL COUNT
=========== ======= ========= ========= ====== ======
DefaultMallocZone_0x100e42000 72.0M 7096 427K 0% 6
感謝徹底的迴應,但是確實有任何由位0-8表示的可選數據添加了內存,而這些內存在'/ proc/self/status'的'VmSize'字段獲取的進程虛擬映射內存中沒有記錄? – Zohar81