Solaris 动态跟踪指南

生成包含探测器的应用程序

您必须扩充应用程序的生成过程以包含 DTrace 提供器和探测器定义。通常的生成过程会获取每个源文件,然后编译这些文件以创建相应的对象文件。然后再将编译后的对象文件链接在一起以创建最终的应用程序二进制文件,如下例所示:


cc -c src1.c
cc -c src2.c
...
cc -o myserv src1.o src2.o ...

要在应用程序中包含 DTrace 探测器定义,请向执行 dtrace 命令的生成过程中添加相应的 make 程序的描述文件规则,如下例所示:


cc -c src1.c
cc -c src2.c
...
dtrace -G -32 -s myserv.d src1.o src2.o ...
cc -o myserv myserv.o src1.o src2.o ...

如上所示的 dtrace 命令将对前面的编译器命令生成的对象文件进行后期处理,并生成对象文件 myserv.o(通过 myserv.d)和其他对象文件。dtrace -G 选项用于将提供器和探测器定义与用户应用程序链接起来。-32 选项用于生成 32 位应用程序二进制文件。-64 选项用于生成 64 位应用程序二进制文件。