H-H*_*H-H 7 java verification instrumentation bytecode
我正在研究字节码检测项目.目前,在处理对象时,验证程序在大多数情况下都会抛出错误.所以我想清楚地了解有关对象的规则(我阅读了JVMS但找不到我想要的答案):
我正在制定新指令:
原始字节码
NEW <MyClass>
DUP
INVOKESPECIAL <MyClass.<init>>
Run Code Online (Sandbox Code Playgroud)
仪表后
NEW <MyClass>
DUP
INVOKESTATIC <Profiler.handleNEW>
DUP
INVOKESPECIAL <MyClass.<init>>
Run Code Online (Sandbox Code Playgroud)
请注意,我添加了对Profiler.handleNEW()的调用,该调用将对象引用(新创建的对象)作为参数.
上面的代码抛出VerificationError.如果我不添加INVOKESTATIC(只留下DUP),它就不会.那么我违反的规则是什么?我可以复制一个未初始化的引用,但我不能将其作为参数传递?我将不胜感激任何帮助.谢谢
| 归档时间: |
|
| 查看次数: |
308 次 |
| 最近记录: |