目前基于ubuntu12 的环境,有些stap 脚本还是无法获取到 内核的变量
(即使安装了ubuntu14 的elfutils,更新了 libc6的版本,还是不行),需要手动指定参数位置。
staprun 是执行 编译好的 stap脚本。
常见错误记录
elfutils 版本太老,导致无法 识别到变量,(ubuntu12 安装systemtap 3.0)
可以通过手动调整获取 变量的方式。
参考文档: http://blog.csdn.net/wangzuxi…
root@scaler-20161221-node3:~/system_tap/systemtap-3.0/EXAMPLES/io# stap iotime.stp -c "pwd"
semantic error: while processing probe kernel.function("compat_SyS_open@fs/compat.c:1090").return from: syscall.open.return from: syscall.open.return
semantic error: not accessible at this address (pc: 0xffffffff8121fd30) [man error::dwarf]: identifier '$filename' at iotime.stp:43:26
dieoffset: 0x1ca0cf4 from /usr/lib/debug/lib/modules/4.1.35-server/vmlinux
function: compat_SyS_open at fs/compat.c:1090
<cannot suggest any alternative locations, elfutils too old>
source: filename = user_string($filename)
^
Pass 2: analysis failed. [man error::pass2]