ASM、ByteKit 与 Arthas 的分层关系
从 Arthas 命令到 ByteKit 注入模型、ASM 字节码操作、Instrumentation 类替换,最后进入 JVM 的完整链路。
同一件事的四个层次:从诊断命令到 JVM 字节码
越往上越接近排障意图,越往下越接近 class 文件与 JVM
Arthas:可以直接使用的诊断工具
watch / trace / jad / reset,把“我想看什么”转换为类匹配、监听器和增强任务
ByteKit:面向诊断场景的增强模型
@AtEnter / @AtExit / @Binding,把注入点和运行时数据翻译为一组字节码操作
ASM:读写 class 的底层字节码库
ClassReader / ClassVisitor / MethodVisitor / ClassWriter,直接处理指令、局部变量和栈帧
Instrumentation + JVM
ClassFileTransformer 返回新的 byte[],类加载或 retransform 时由 JVM 校验并替换方法实现