SystemTap支持guru模式,通过-g选项来以这种模式执行SystemTap脚本。在guru模式下,嵌入的C代码在“%{"和“%}"标记之间,这些代码会原封不动地放到生成的模块中。嵌入的C代码不仅可以作为函数体,还可以出现在SystemTap描述中(例如函数等),示例如下:
%{
# include <linux /in.h >
# include <linux /ip.h >
%} /* <-- top level */
function read_iphdr :
# include <linux /in.h >
# include <linux /ip.h >
%} /* <-- top level */
function read_iphdr :

本文介绍了SystemTap的guru模式,该模式允许在SystemTap脚本中嵌入C代码。通过`%{`和`%}`标记,C代码可以直接插入到模块中。示例展示了如何在函数体和表达式中使用C代码,以及如何安全地访问指针。文章还提到了不同SystemTap版本中访问参数和返回值的方式变化,并警告了在嵌入的C代码中避免睡眠操作以防止内核崩溃。
最低0.47元/天 解锁文章
1452

被折叠的 条评论
为什么被折叠?



