我有一个Java程序,它使用Java DTrace API(Java DTrace API)在Solaris Sparc 10上构建和执行dtrace脚本。该脚本使用pid提供程序将探针放在所有函数的入口点上在一组库中,像这样(实际上有超过100个库,所以脚本很长):
pid1234:liba::entry,pid1234:libb::entry,pid1234:libc::entry {printf("%s", probemod);}
我的代码如下:
_consumer = new LocalConsumer();
_consumer.open();
// set the zdefs option to allow scripts with no probes
_consumer.setOption(org.opensolaris.os.dtrace.Option.zdefs);
_consumer.compile(_dtraceScript); // where _dtraceScript is a string as described above
编译调用失败:
invalid probe specifier pid1234:liba::entry,pid1234:libb::entry...[truncated]
我已经完整地复制并粘贴了脚本并使用以下命令在命令行执行:
dtrace -n '...my script...'
...它运行正常,所以我知道我的脚本在语法上没有任何错误。
所以,两个问题/问题:
任何建议都赞赏!