在systemtap中,如何在用户空间进程中捕获函数的返回?

时间:2013-09-05 18:34:40

标签: systemtap

以下systemtap脚本无法编译:

probe process("myexe").function("myFun").return { print("hi mom\n") }

它说:

  

语义错误:在解析探测点时:标识符'进程'在   proxy.stp:6:7           source:probe process(“/ home / martin / experiments / systemtap / a.out”)。function(“doSomething”)。return                         ^

     

语义错误:进程返回探测不可用[man   错误:: inode-uprobes]第2遍:分析失败。 [man error :: pass2]   提示:/usr/share/doc/systemtap/README.Debian应该可以帮到你   启动。

我希望在函数退出时捕获,而不是进程。如果我删除.return它编译&运行正常。如何捕获函数退出?

我在Ubuntu 13.04,Linux 3.8.0-29-通用,系统点击2.1 / 0.153。

1 个答案:

答案 0 :(得分:4)

man error::inode-uprobe手册页说明。 3.10之前的Linux内核版本缺少使其工作所需的返回探测功能。 (旧的RHEL内核确实具有相同的功能。)