微软宣布 windows 10 已经支持 dtrace。dtrace 是什么?dtrace(全称dynamic tracing),也被称为动态跟踪,是由 sun™ 设计的一款用于在生产环境或测试环境中发现系统性能瓶颈的工具。它能够对内核(kernel)以及用户级的应用程序(user application)进行动态跟踪,并且不会对系统运行产生任何风险。dtrace 是一款非常优秀的分析工具,具备众多有助于诊断系统问题的功能。此外,用户还能借助预先编写的脚本来发挥其功能,同时也能运用 dtrace d 语言构建个性化的分析工具,以适应特定需求。
自 2016 年起,GitHub 上就出现了一个名为 OpenDTrace 的开源项目,该项目旨在为不同操作系统实现 DTrace 的移植与适配。微软工程师基于此项目创建了 Windows 版本分支,以此推动 Windows 对 DTrace 的兼容性发展。
不过,目前 DTrace 在 Windows 上运行时仍需依赖内核调试器(Kernel Debugger)来启动系统,原因是 DTrace 必须向被分析的目标系统函数中注入代码,这涉及到对内核内存的更改。由于 Windows 很早就引入了内核补丁保护(KPP,又称 PatchGuard),一旦检测到内核内存有任何改动,系统便会触发崩溃。因此,DTrace 的操作违反了 PatchGuard 的安全机制,若想让 DTrace 正常工作,必须暂时禁用 PatchGuard。
微软开发团队提到,他们已经构思出一种“未来如何以符合 PatchGuard 规范的方式启用 DTrace”的解决方案。但现阶段,用户只能在这两者之间做出选择。
当前,在 Windows 上部署和运行 DTrace,要求系统版本为 Windows 10 insider build 18342 或更新版本,并且仅限于 64 位系统。











