开发者

Java agent, instrumentation and array creation

I need to write an agent for my java application, that does some 开发者_开发技巧specific stuff on every array creation. So far I was unable to find any way to run my code on this event.

  1. java.lang.instrument.ClassFileTransformer does not get "array classes", so no way to hook into "constructor of array". And "array classes are never modifiable"
  2. no JVMTI event corresponds to this

Any suggestions?


You'll need to modify the byte-code of your application to do that. I've found ObjectWeb ASM to be the best tool for the job. The general idea is to:

  1. Create a JVMTI agent which intercepts the classes you're interested in.
  2. Pass the classes you want to instrument to an ASM class transformer.
  3. In the class transformer, you can intercept the Java opcodes related to constructing an array, e.g. ANEWARRAY (see the JVM spec for more).
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜