加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 用于调试VerifyError的好工具

发布时间:2020-12-14 17:46:50 所属栏目:Java 来源:网络整理
导读:我发现字节码 VerifyErrors 臭名昭着地很难调试. JVM提供很少的反馈,通常只是当前的类,有时是方法. 通过ASM或Jasmin手动工程化字节码时,我通常会遇到的一些错误示例: 堆栈大小太大 无法从一个空的堆栈弹出操作数 掉落代码的末尾 期望在堆栈上找到对象/数组
我发现字节码 VerifyErrors臭名昭着地很难调试. JVM提供很少的反馈,通常只是当前的类,有时是方法.

通过ASM或Jasmin手动工程化字节码时,我通常会遇到的一些错误示例:

>堆栈大小太大
>无法从一个空的堆栈弹出操作数
>掉落代码的末尾
>期望在堆栈上找到对象/数组
>函数调用不兼容的对象参数
堆栈高度不一致4!= 2

(要清楚,我知道这些都是什么意思,我对调试其原因的工具或技术感兴趣.)

我的问题:有没有任何工具可以对这些类型的错误提供详细的反馈?我会喜欢诸如此类的信息

> javap-like输出
>引用行号(或操作码字节偏移)
>每行的操作数堆栈信息(类型/深度)
>更多描述性错误消息

解决方法

我想你可以使用ASM提供的CheckClassAdapter( http://asm.ow2.org/asm40/javadoc/user/org/objectweb/asm/util/CheckClassAdapter.html).它提供有关验证错误的更多详细信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读