Memory

在 OS X 上查找 CoW 頁面錯誤的根源

  • April 5, 2019

我正在嘗試在 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 

引用自:https://unix.stackexchange.com/questions/272176