普通にjavacしたクラスをBTraceに食わせるとどうなるか?
ちなみに、com.sun.btrace.compiler.Compilerも、凝った実装をしているわけではなくて
Compiler APIを叩く時に、com.sun.btrace.compiler.Verifierという
BTrace独自のソースコードチェックを行っているだけだった。
このVerifierこそが、BTraceの一つの肝である「安全性」、
BTraceのコンパイラは何をやっているのか? - せろ部屋
つまり「刺した時にアプリを壊さないために、強い制限を掛ける」ってことを
実現しているもので、BTraceの制限を緩めたいなら、
このVerifierを自前のものに差し替えてしまえば良さそうだ。
Verifierを自前のものに差し替える、、、というか、
いっそのことjavacしたクラスをBTraceに食わせるとどうなるか試してみました。
、、、結果は撃沈。BTraceのVerifyErrorが発生しました。
どうやらバイトコード書き換えを行うタイミングでも、
クラスの内容チェックを行っているようです。
ここも含めて回避するのは面倒くさそうなので、いったん諦めます。