我们知道,运行在不同操作系统上的DTrace提供了不同的内置函数。例如,旧版本的Solaris
在DTrace中没有可用的inet_ntop()
。如何知道DTrace提供的内置函数?
因此,当我编写在特殊操作系统上运行的DTrace脚本时,如何知道DTrace提供的内置函数?或者只能通过运行脚本并检查DTrace的投诉?
我们知道,运行在不同操作系统上的DTrace提供了不同的内置函数。例如,旧版本的Solaris
在DTrace中没有可用的inet_ntop()
。如何知道DTrace提供的内置函数?
因此,当我编写在特殊操作系统上运行的DTrace脚本时,如何知道DTrace提供的内置函数?或者只能通过运行脚本并检查DTrace的投诉?
最好的解决方案是参考相关操作系统版本的DTrace文档。对于Solaris,新的DTrace功能几乎总是只出现在主要版本或更新中,并且文档(或应该)同时更新。因此,如果您正在运行Solaris 11.1,则应参阅“Oracle Solaris 11.1动态跟踪指南”。
Solaris的dtrace(1)
没有“显示当前支持的操作”选项,但您可以考虑记录RFE。
如果您编写的脚本需要特定版本的DTrace实现,那么您可以使用option or pragma将其绑定到该脚本。这种机制应该存在于其他DTrace实现中,但是每个分支的任何特定版本号的含义都不相同。因此,一如既往,最好依靠文件。
如果您希望获得各种Dtrace模块公开的功能列表,您可以使用dtrace -l