systemtap 学习记录(更新中)

目前基于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]

    原文作者:shengguo
    原文地址: https://segmentfault.com/a/1190000010786358
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞