以下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。
答案 0 :(得分:4)
man error::inode-uprobe
手册页说明。 3.10之前的Linux内核版本缺少使其工作所需的返回探测功能。 (旧的RHEL内核确实具有相同的功能。)