我正在寻找C或C++中用于Java的BCI (字节码仪器)库,以便在JVMTI代理中使用。
最好的情况是类似于纯C中的ASM或BCEL。
到目前为止,我发现的最接近的东西只是几年前Kelly‘’Hair编写的演示java_crw_demo,并在Sun/Oracle的教程中使用过。
你还知道别的什么吗?
一些基本原理:我正在构建一个工具来向
java.lang.Object中添加一个getter方法,并在Object的每个直接子类中重载这个getter。因此,我不能使用Java代理。此外,出于复杂性和速度的原因,我希望避免生成辅助JVM来执行检测。
发布于 2012-07-31 16:27:34
我很久以前就开始用C写了一篇文章,但是由于缺乏动力,我并没有走多远。AFAIK在C中没有公开版本,但是根据JVM规范的要求,编写一个简单的版本应该不难。您应该特别感兴趣的是关于文件格式的章节,以及关于指令集的章节。
发布于 2013-05-29 02:24:35
我找到的唯一合理的解决方案实际上是将字节码输送到一个使用ASM (或您选择的BCI框架)的独立Java程序。这并不快,但您只需要在每个工具化类中执行一次。
https://stackoverflow.com/questions/11718830
复制相似问题