查找 OS X 上 CoW 页面错误的来源

查找 OS X 上 CoW 页面错误的来源

我正在尝试在 OS X 上的一些 C 代码中找到 CoW 页面错误的根源。我想使用vminfo DTrace 提供程序,但vminfo在 OS X 上不可用。在 Linux 上,我可以使用 SystemTap 打印 CoW 故障的堆栈跟踪。有没有办法在 OS X 上做到这一点?

答案1

看起来您想要禁用 dtrace SIP 保护。

查看我的类似在 apple.stackexchange 中回答用于禁用 SIP 中的 dtrace 保护。

我已启用 SIP,无需 dtrace,并且可以访问 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 

相关内容