Chr*_*s R 16 mac troubleshooting
在iotop -C 5 122010 年末的 Macbook Pro (10.6.7) 上运行时,我重复出现此错误:
dtrace: error on enabled probe ID 5 (ID 19507: io:mach_kernel:buf_strategy:start): illegal operation in action #3 at DIF offset 0
Run Code Online (Sandbox Code Playgroud)
这是什么原因,我该如何解决?
小智 9
错误正在输出到 stderr,并且可以通过运行以下命令来过滤掉:
sudo iotop -C 5 12 2>/dev/null
Run Code Online (Sandbox Code Playgroud)
这确实具有过滤掉可能出现的任何其他错误的副作用。我发现这是一个不错的权衡,因为它使我的 iotop 输出可读。
不幸的是,我不确定错误的原因是什么。我已经搜索过,但到目前为止还没有找到任何东西。
简而言之,当尝试跟踪请求不被跟踪的进程时会显示错误。
该错误在技术上不是由 iTunes 引起的,而是由使用如下代码禁用跟踪的进程引起的。
ptrace(PT_DENY_ATTACH, 0, 0, 0);
Run Code Online (Sandbox Code Playgroud)
此代码在内核级别的进程上设置了一个标志,以防止对进程进行调试和跟踪。
执行此操作的最著名的应用程序恰好是 iTunes,该应用程序的 DRM 此 API 可能是为其发明的,但该 API 可用于其他进程。我已经看到许多 3rd 方应用程序使用这个 API。
当然,像所有 DRM 一样,它可以被破解。绕过此反跟踪和反调试功能的选项范围从使用调试器跳过 API 调用到在内核空间中修补该功能的内核扩展。
| 归档时间: |
|
| 查看次数: |
9768 次 |
| 最近记录: |