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 校验并替换方法实现