3

以下 systemtap 脚本无法编译:

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

它说:

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

语义错误:进程返回探针不可用 [man error::inode-uprobes] Pass 2:分析失败。[man error::pass2] 提示:/usr/share/doc/systemtap/README.Debian 应该可以帮助您入门。

我想在函数退出时捕获,而不是进程。如果我删除.return它,它会编译并运行良好。如何捕获函数退出?

我在 Ubuntu 13.04、Linux 3.8.0-29-generic、系统分流器 2.1/0.153 上。

4

1 回答 1

4

man error::inode-uprobe手册页解释了。3.10 之前的 Linux 内核版本缺少完成这项工作所需的返回探测功能。(旧的 RHEL 内核确实具有等效的功能。)

于 2013-09-06T23:31:10.153 回答