虽然 FreeBSD 上的 DTrace 与 Solaris™ 上的非常相似, 在继续深入之前我们需要说明一下存在的差异。 用户首先会注意到的便是 FreeBSD 上的 DTrace 需要明确地被启用。 DTrace 相关的内核选项和模块必须开启后才能正常工作。 稍后我们会作详细介绍。
有一个 DDB_CTF 内核选项用来开启从内核与内核模块加载 CTF 数据。 CTF 是 Solaris Compact C Type Format 封装了类似于 DWARF 和 venerable stabs 简化的调试信息。CTF 数据是由 ctfconvert 和 ctfmerge 工具加入二进制文件的。ctfconvert 工具分析由编译器生成的 DWARF ELF 调试 section, ctfmerge 合并目标文件的 CTF ELF section 到可执行文件或共享库。更多关于在启用 FreeBSD 内核上启用此项的详细内容即将完成。
比起 Solaris, FreeBSD 有几个不同提供器。
最值得注意的是 dtmalloc 提供器, 可以让你根据类型追踪 FreeBSD
内核中的 malloc()
。
只有 root 可以使用 FreeBSD 上的 DTrace。 这是由系统安全上的差异造成的,Solaris 提供了一些 FreeBSD 上还未实现的低层的安全检查。 同样, /dev/dtrace/dtrace 也被严格的限制为仅供 root 用户访问。
最后,DTrace 为 Sun™ CDDL 许可下发布的软件。随 FreeBSD 发行的 Common Development and Distribution License 可以在查阅 /usr/src/cddl/contrib/opensolaris/OPENSOLARIS.LICENSE 或者通过 http://www.opensolaris.org/os/licensing 查看在线版本。
这个许可表示带有 DTrace 选项的 FreeBSD 内核仍为 BSD 许可; 然而, 以二进制发布模块, 或者加载二进制模块则需遵守 CDDL。
本文档和其它文档可从这里下载:ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读文档,如不能解决再联系<questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.