虽然 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>.