第2.3节"练习"的第三部分练习对于官方systemtap教程

时间:2013-12-25 04:59:38

标签: function return call inline systemtap

问题描述:

列表:socket_trace.stp

probe kernel.function("*@net/socket.c").call{
    printf("%s -> %s\n", thread_indent(1), ppfunc())
}
probe kernel.function("*@net/socket.c").return {
    printf("%s <- %s\n", thread_indent(-1), ppfunc())
}

通过从第一个探针中删除.call修饰符来更改列表。请注意函数输入和函数返回现在不再匹配。这是因为现在第一个探针将匹配正常函数入口和内联函数。尝试重新放入.call修饰符并添加另一个探针,仅用于探测kernel.function(“* @ net / socket.c”)。return在探针处理程序中可以提出什么printf语句,以便很好地显示内联函数条目.call和.return线程之间缩进输出?

我不知道如何在函数返回探测处理程序中显示内联函数调用(如果有)?有人能提供帮助吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

probe kernel.function("*@net/socket.c").inline {
    printf("%s -- %s\n", thread_indent(0), ppfunc())
}