0

问题描述:

清单: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 线程缩进输出之间?

我不知道如何表明函数返回探针处理程序中发生了内联函数调用(如果有的话)?有人可以帮忙吗?提前致谢。

4

1 回答 1

0
probe kernel.function("*@net/socket.c").inline {
    printf("%s -- %s\n", thread_indent(0), ppfunc())
}
于 2013-12-26T00:02:05.507 回答