[alibaba/arthas]字节码插拔命令是否会在arthas停止之后去掉插入代码

2023-12-12 368 views
6

例如watch和trace都是利用字节码插拔插入代码来达到目的,那么在arthas exit之后是否会保留插拔入的字节码呢?

回答

8

不会,在插板前保存了原字节码,可以直接还原

6

所以你需要确保退出了Arthas,如使用stop命令

4

严格来说,是原始字节码在jvm启动的时候报存在了元空间,arthas的reset等命令的原理就是transform的时候不传入新的字节码就默认还原为元空间的字节码

6

准确的说是每次执行加强的时候都新增了一个对应类的ClassFileTransformer,执行完后卸载ClassFileTransformer,reset的时候没有 ClassFileTransformer就是一次普通的类加载

5

执行完是指什么时候?没有看到卸载Transformer的代码啊

8

ProcessImpl#unregister