SystemTap 学习

SystemTap 基于 Kprobes( Kprobe、Kretprobe)。

SystemTap的执行流程:

1.首先通过 stap程序 将stap脚本转换成c代码,进一步转换成提供探针行为的内核模块;

2.通过SystemTapstaprunstapio将模块安装到内核中并将输出发送到stdout。

 

SystemTap 运行基于内核符号表,可以提供能基于符号表的检测调用、查询变量、修改动作。

 

SystemTap 脚本由探针和在触发探针时需要执行的代码块组成。

 

 

最后,SystemTap提供许多内部函数,这些函数提供关于当前上下文的额外信息。例如,您可

以使用caller()识别当前的调用函数,使用cpu()识别当前的处理器号码,以及使用pid()

返回 PIDSystemTap还提供许多其他函数,提供对调用堆栈和当前注册表的访问。

 

SystemTap 工作原理。

SystemTap 如何用的内核符号表?

linux 调试信息包含哪些信息?

SystemTap 内核中做了哪些工作?

 

参考资料:
https://blog.csdn.net/panfengyun12345/article/details/16858429
https://www.cnblogs.com/youngerchina/p/5624588.html

《systemtap原理及应用》

https://www.cnblogs.com/youngerchina/p/5624588.html

《Systemtap tutorial》
https://sourceware.org/systemtap/tutorial/

posted on 2019-02-22 11:21  rivsidn  阅读(187)  评论(0)    收藏  举报

导航