1 Star2 Stars3 Stars4 Stars5 Stars (还没有评分)
Loading...

推荐系列文章:《Hooked on DTrace》

今天小编向大家推荐的是Big Nerd Ranch的工程师Mark Dalrymple写的介绍DTrace的系列文章(操作系统是Mac OS X):《Hooked on DTrace》,文章写得很好,一共有四篇:

http://www.bignerdranch.com/blog/hooked-on-dtrace-part-1/
http://www.bignerdranch.com/blog/hooked-on-dtrace-part-2/
http://www.bignerdranch.com/blog/hooked-on-dtrace-part-3/
http://www.bign[……]

阅读全文

1 Star2 Stars3 Stars4 Stars5 Stars (还没有评分)
Loading...

DTrace tricks and tips (3) – 访问程序全局变量

在stackoverflow上有人问如何用DTrace访问程序的全局变量(http://stackoverflow.com/questions/11228352/dtrace-accessing-global-variables-from-application),答案也简单,只需知道全局变量的地址,然后把地址作为指针,按照变量的类型,解引用指针即可。所以问题来了,如何得到全局变量地址?

还是以stackoverflow上问题的代码做例子,并假设编译后生成的可执行文件名为a:

#include <stdio.h>
int global_var;

void chang[......]

阅读全文

1 Star2 Stars3 Stars4 Stars5 Stars (还没有评分)
Loading...

分享一篇文章《Using DTrace to Instrument Your System》

Joyent的工程师Max Bruning在今年的MacIT会议上做了一个presentation:《Using DTrace to Instrument Your System》。这个文档开始讲了一些DTrace的基本概念,然后介绍了如何在OS X上使用DTrace,最后还介绍了火焰图和node.js。感兴趣的同学可以读一下。由于原文是分享在slideshare上的,在大陆访问可能不稳定,我把它分享在百度网盘:http://pan.baidu.com/s/1pJ7D6mn

1 Star2 Stars3 Stars4 Stars5 Stars (还没有评分)
Loading...

DTrace动态变量泄露(dynamic variable drops)问题

在这个月的dtrace-discuss mailing list里,有人提到了动态变量泄露(dynamic variable drops)问题:http://www.listbox.com/member/archive/184261/2014/05/sort/time_rev/page/1/entry/2:5/20140505141710:5BA4F4A2-D481-11E3-ADF7-F8194C58CA13/。总结起来,就是像thread-local和associative array这样的变量,用完以后要记得释放(就是把变量置为0:self->var = 0),否则就会有泄露,这样[……]

阅读全文

1 Star2 Stars3 Stars4 Stars5 Stars (还没有评分)
Loading...

DTrace tricks and tips (2) – 多核CPU导致DTrace输出乱序问题

下面这段DTrace脚本是在一个函数的入口和出口都打印一条log输出:

pid$1::func:entry,
pid$1::func:return
{
    printf("%Y [%d][%s][%s]\n", walltimestamp, tid, probefunc, probename);
}

在多核CPU系统上运行,有可能函数退出时的log输出会先于进入时的log输出。类似这样:

2014 Mar 3 02:13:49 [57][func][return]
2014 Mar 3 02:14:04 [57][func][entry]

这是因为在多核CPU[……]

阅读全文