微软宣布 Windows 10 支持 DTrace。DTrace 是一个动态跟踪框架,于 21 世纪初诞生于 Sun 公司的 Solaris 操作系统,提供了性能分析和调试功能。开发人员可使用 DTrace 对内核或用户应用程序进行动态跟踪,分析及诊断系统问题。
2016 年开始,GitHub 就有了个 OpenDTrace 开源项目,致力于针对不同操作系统的 Dtrace 移植实现。微软开发人员在这个项目的基础上创建了 Windows 分支,从而开展 Windows 对 DTrace 的支持工作。
美中不足的是,DTrace 目前需要连接内核调试器(Kennel debugger)来启动 Windows,这是因为 DTrace 需要将一些代码插入正在分析的系统函数中,修改到了内核内存。而 Windows 在很久之前采用的内核补丁保护(KPP,又称 PatchGuard),如果检测到任何内核内存的修改,就会将系统崩溃。DTrace 违反了 PatchGuard 对系统的保护措施,禁用 PatchGuard 才可以让 DTrace 进行需要的修改,正常完成工作。
微软开发者表示,他们已经有了 “将来怎么用符合 PatchGuard 标准的方式启用DTrace” 的想法。不过现在来说,用户只能在选择其中一个。
目前在 Windows 上安装和运行 DTrace,需要 Windows 10 insider build 18342 或更高版本,且只支持 64 位系统。