在2008年的DTrace讨论邮件里,我找到了这个话题:“can i use if/else/for/while in dtrace script?”?而针对这一问题,Chip Bennett给出了如下的解释: (1)没有循环语句的原因是:clause作为kernel线程运行时是关中断的,所以一旦循环运行很长时间甚至出现死循环状况,就会给系统带来很大影响; (2)没有if/else语句...
Max Burning的这篇文章:《Bruning Questions: How To DTrace poll(2) System Calls》([链接])归根到底的结论就是:copyin()函数所返回的内存空间只在当前clause有效,不能跨clause使用(“copyin() data goes into scratch space which is not saved across clauses.”)。 所以针对下面的代码:
Joyent的工程师Max Bruning在今年的MacIT会议上做了一个presentation:《Using DTrace to Instrument Your System》。这个文档开始讲了一些DTrace的基本概念,然后介绍了如何在OS X上使用DTrace,最后还介绍了火焰图和node.js。感兴趣的同学可以读一下。由于原文是分享在slideshare上的,在大陆访问可能不稳定,我把它分...
对于新接触DTrace的同学,小编推荐Oracle的文档:DTrace User Guide([链接])。这篇文章只有60多页,但是介绍了很多干货:built-in variables,functions,tracing user processes,speculative tracing等等。相信大家看完后,至少可以入门了。
自从2010年第一次接触DTrace以来,就觉得DTrace是一个很cool的工具,应该是所有在支持DTrace操作系统(Solaris,FreeBSD,Mac OS X)上开发的geek们应该掌握的工具。不过在中国,DTrace似乎不太流行,好像连个讨论区都没有。我很希望在中国有更多的工程师来了解和使用DTrace。所以我申请了一个微信公众号dtrace(微信号...