本小节我们编写一个简单的探针,用于打印出指定进程在运行时调用的syscall.

    systemtap脚本中获取命令行变量: $n (数字型) @n (字符串)

    我们编写一个简单的脚本, 文件名为sysc.stp

    1. probe begin() {
    2. printf("Start...\n");
    3. }
    4. probe syscall.* {
    5. if(execname() == @1) // @1代表命令行的第1个参数, 如果参数时pid或者线程id,要用$1
    6. {
    7. printf("%s\n", pp());
    8. }
    9. }

    这个探针脚本的使用方式:

    1. stap sysc.stp mysqld