6
例如watch和trace都是利用字节码插拔插入代码来达到目的,那么在arthas exit之后是否会保留插拔入的字节码呢?
例如watch和trace都是利用字节码插拔插入代码来达到目的,那么在arthas exit之后是否会保留插拔入的字节码呢?
不会,在插板前保存了原字节码,可以直接还原
所以你需要确保退出了Arthas,如使用stop命令
严格来说,是原始字节码在jvm启动的时候报存在了元空间,arthas的reset等命令的原理就是transform的时候不传入新的字节码就默认还原为元空间的字节码
准确的说是每次执行加强的时候都新增了一个对应类的ClassFileTransformer,执行完后卸载ClassFileTransformer,reset的时候没有 ClassFileTransformer就是一次普通的类加载
执行完是指什么时候?没有看到卸载Transformer的代码啊
ProcessImpl#unregister