开发者社区> 问答> 正文

如何编写stap(systemtap)脚本以查看某个进程是否调用了特定的内核函数?

使用stap,我可以将* .stp文件写入

要么跟踪流程的动作,例如:

probe process("mytest").begin
{
    printf("Caught mytest process")
}

或跟踪内核函数是否被任何进程调用:

probe kernel.function("do_exit").call #all processes
{
    printf("called kernel/exit.c: do_exit\n")
}

但是我的要求是:从特定进程名称跟踪内核函数调用,例如跟踪“ mytest”进程调用的“ sys_open”。

如何编写此.stp语句/函数?谢谢!

展开
收起
游客ufivfoddcd53c 2020-01-04 15:00:07 1815 0
1 条回答
写回答
取消 提交回答
  • 我找到了一种方法:使用一个指示程序名称的变量

    global prog_name = "mytest";
    probe kernel.function("do_exit").call
    {
       if(execname() == progname){
            printf("called kernel/exit.c: do_exit\n");     
       }
    
    }
    
    2020-01-04 15:00:50
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
服务上云加速大家居产业C2M进程 立即下载
小程序 大世界 立即下载
《15分钟打造你自己的小程序》 立即下载