如何使用dtrace跟踪函数?

时间:2014-07-14 04:56:02

标签: c debugging dtrace

我在dhcpagent命令中进行了一些更改,并且在测试时,它有点失败。现在我知道在dhcpagent退出之前最后调用了哪个函数。我想跟踪从dhcpagent到特定函数的控件,让我们说foo()。我正在寻找谁调用foo()并调用该函数等等,就像家谱一样,从dhcpagent到foo()。我该怎么做呢 ?我对dtrace有非常基本的了解,比如如何构建基本脚本,但不多了。你能建议我自己学习和编写脚本的脚本/资源吗?

我做了什么尝试:

pid$target::functionname:entry  //and the target was dhcpagent from the command line

由于

1 个答案:

答案 0 :(得分:2)

我认为以下脚本可以帮助您:

#!/usr/sbin/dtrace -Fs
pid$target:::entry,  
pid$target:::return
{
}

在上面的脚本中,它可以打印如何调用该函数。但输出可能很棒! 如果您只关心dhcpagent模块,我认为以下脚本是更好的选择:

#!/usr/sbin/dtrace -Fs
pid$target:dhcpagent::entry,  
pid$target:dhcpagent::return
{
}