问题描述:
清单: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 线程缩进输出之间?
我不知道如何表明函数返回探针处理程序中发生了内联函数调用(如果有的话)?有人可以帮忙吗?提前致谢。