systemtap学习记录一
前两天拜读了章亦春大佬的关于Dynamic Tracing的文章,觉得对现在碰到的一些问题有了一些新的思考,为了能有所产出就先写一点简单的学习记录 首先这个systemtap类似于一个linux系统层面的探针工具,可以让用户去监控系统的各种活动 以阿里云的 ubuntu 22.…
前两天拜读了章亦春大佬的关于Dynamic Tracing的文章,觉得对现在碰到的一些问题有了一些新的思考,为了能有所产出就先写一点简单的学习记录 首先这个systemtap类似于一个linux系统层面的探针工具,可以让用户去监控系统的各种活动 以阿里云的 ubuntu 22.…
通过 Javassist 的 ClassPool、CtClass 和 getAnnotations API 读取 Java 类上的注解,并从自定义 Author 注解中取得名称与年份属性。
本文使用 Javassist 定位目标类和方法,通过 insertBefore 与 insertAfter 在不修改源码的情况下织入代码,记录方法入参和返回值。
通过一个完整示例学习 Javassist 的基础 API:动态创建 Java 类,为类添加字段、Getter、Setter、无参和有参构造函数,并输出生成的 class 文件。
在 Java Agent 基础示例上继续实践:通过 Javassist 的 CodeAttribute 与 LocalVariableAttribute 读取方法参数名,并插入参数输出代码。