谷本 心 in せろ部屋

はてなダイアリーから引っ越してきました

普通にjavacしたクラスをBTraceに食わせるとどうなるか?

ちなみに、com.sun.btrace.compiler.Compilerも、凝った実装をしているわけではなくて
Compiler APIを叩く時に、com.sun.btrace.compiler.Verifierという
BTrace独自のソースコードチェックを行っているだけだった。


このVerifierこそが、BTraceの一つの肝である「安全性」、
つまり「刺した時にアプリを壊さないために、強い制限を掛ける」ってことを
実現しているもので、BTraceの制限を緩めたいなら、
このVerifierを自前のものに差し替えてしまえば良さそうだ。

BTraceのコンパイラは何をやっているのか? - せろ部屋

Verifierを自前のものに差し替える、、、というか、
いっそのことjavacしたクラスをBTraceに食わせるとどうなるか試してみました。


、、、結果は撃沈。BTraceのVerifyErrorが発生しました。
どうやらバイトコード書き換えを行うタイミングでも、
クラスの内容チェックを行っているようです。


ここも含めて回避するのは面倒くさそうなので、いったん諦めます。