Memory
在 OS X 上查找 CoW 頁面錯誤的根源
我正在嘗試在 OS X 上的某些 C 程式碼中查找 CoW 頁面錯誤的來源。我想使用vminfo DTrace 提供程序,但
vminfo
在 OS X 上不可用。在 Linux 上,我可以使用 SystemTap 列印堆棧跟踪 CoW 故障。有沒有辦法在 OS X 上做到這一點?
看起來您想禁用 dtrace SIP 保護。
有關在 SIP 中禁用 dtrace 保護,請參閱我在 apple.stackexchange中的類似答案。
我在沒有 dtrace 的情況下啟用了 SIP,並且可以訪問 vminfo。
# uname -a Darwin Phoenix.local 15.4.0 Darwin Kernel Version 15.4.0: Fri Feb 26 22:08:05 PST 2016; root:xnu-3248.40.184~3/RELEASE_X86_64 x86_64 # dtrace -n 'vminfo:::cow_fault {trace(probefunc)}' dtrace: description 'vminfo:::cow_fault ' matched 2 probes CPU ID FUNCTION:NAME 0 1182 vm_page_validate_cs_mapped_chunk:cow_fault vm_page_validate_cs_mapped_chunk 0 1182 vm_page_validate_cs_mapped_chunk:cow_fault vm_page_validate_cs_mapped_chunk 0 1182 vm_page_validate_cs_mapped_chunk:cow_fault vm_page_validate_cs_mapped_chunk