BTrace 是一个很神奇的 VisualVM 插件, 它本身也是一个可运行的独立程序.
BTrace 的用途很广泛, 打印调用堆栈, 参数, 返回值只是它最基础的使用形式.
BTrace 的作用是在不中断目标程序运行的前提下, 通过 HotSpot 虚拟机的 Instrument 功能动态加入原本并不存在的调试代码.
BTrace 能够实现动态修改程序行为, 是因为它是基于 JVM 的 Instrument 开发的.
Instrument 提供了一套代理机制, 使得第三方工具程序可以以代理的方式访问和修改 JVM 内部的数据.
