`
yesjavame
  • 浏览: 694932 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

这样的错误竟然能得到正确的值,这个bug藏的够深的。

阅读更多

为了统计方法执行时候,我用ASM在方法开始的时候插入一个变量startLocal记录开始执行的时间,然后在结束的时间用当前时间去差这个开始时间,为了调试,我同时又插入了一个endLocal

注意这段有bug的代码竟然可以正确地执行了。但是当我去掉调示后,改成这样:

却得不到正确的结果了。于是反复查看地,终于发现了

this.startLocal = this.newLocal(Type.getType(Long.class));

应该是:

this.startLocal = this.newLocal(Type.LONG_TYPE);

如果开始分配的栈不对,两个object的栈相当于一个long的栈,但在LSUB的时候为什么是正确的?

两个Long对象进行lsub,虽然java源码在编译的时候可以自动插入转换指令,但在上面的字节码指令中

仍然可以正确LSUB,虽然栈中的值是正确的,但却越过了类型检查。

分享到:
评论

相关推荐

    利用数字签名bug藏数据

    然而,当数字签名系统存在漏洞时,恶意用户可能会利用这些漏洞隐藏数据,这种现象在标题"利用数字签名bug藏数据"中得到了体现。 描述中提到的工具是专门用来利用这样的漏洞,在一个已经具有数字签名的PE(Portable ...

    解决了IoTDB第一值为null取最近一个有值的记录值返回的bug

    本次更新针对IoTDB的一个关键问题进行了修复,即当查询的第一个值为null时,系统无法正确返回最近一个非null的记录值。这个问题可能对数据分析和应用产生严重影响,因为无法获取到有效的历史数据。 IoTDB的核心功能...

    详解JavaScript的BUG和错误

    然而,JavaScript语言的设计灵活性也带来了不少问题,其中之一就是BUG和错误的处理。BUG通常指的是程序中存在不符合设计预期的行为,错误则是指违反了编程语言的语法规则或类型系统的行为。 首先,JavaScript中的...

    Bug奋斗史汇总

    总的来说,这个压缩包中的文档全面展现了Bug管理的各个环节,从新手到资深开发者,都会经历从发现、理解和修复Bug到预防Bug的整个过程。在这个过程中,不仅需要技术知识,还需要良好的团队协作、问题解决和沟通技巧...

    0xfd bug 修复

    这个bug主要出现在程序处理内存地址或数据时,由于编译器的内部处理方式,可能会导致内存访问错误或逻辑错误,进而影响到LED显示等硬件操作。例如,如果你的程序包含对0xFD地址的读写操作,可能在实际运行时,该操作...

    Oracle rac bug又见bug(三)

    综上所述,Oracle RAC Bug的讨论涵盖了数据库架构、并发处理、NULL值的特殊性、故障诊断工具以及源码分析等多个方面,这些都是DBA在日常运维中必须掌握的关键知识。理解并解决这些问题,有助于提升Oracle RAC环境的...

    解决BugFree上传图片不能显示问题

    BugFree是一款广泛应用于软件开发过程中的缺陷管理工具,它帮助团队有效地跟踪和管理软件中的错误、缺陷或问题。在使用BugFree的过程中,用户可能会遇到上传图片后无法正常显示的问题,这通常是由配置不当或者端口...

    buglife-android,可怕的移动错误报告!.zip

    这个压缩包文件`buglife-android-master`很可能是该SDK的源代码仓库,包含了全部的开发资源。 在Android应用开发中,错误报告是至关重要的,因为它能帮助开发者及时发现并修复问题,提高应用的稳定性和用户体验。...

    淘宝bug展示图片

    在IT行业中,"淘宝bug展示图片"这一主题主要涉及到软件开发的质量控制和用户体验优化。Bug是程序员和测试工程师日常工作中常见的问题,它指的是软件或应用中存在的错误、缺陷或异常行为。在淘宝这样的大型电子商务...

    mantis中的bug状态变化流程

    Mantis是一款开源的缺陷跟踪系统,它用于管理软件开发中的错误报告或称为“bug”的状态。在Mantis中,bug的状态变化流程对于整个项目的测试和运维过程至关重要,因为它确保了问题的有效跟踪和解决。以下是对Mantis中...

    bug定义和返工率计算统计方法

    bug 定义是指在软件开发过程中出现的错误或缺陷,包括高级类、 中级类和低级类三个等级。高级类 bug 是指严重错误,如程序引起的死机、死循环、数据库死锁、存储业务逻辑错误和 SQL 语句性能或逻辑错误等。中级类 ...

    java java查bug 查bug bug 查错 源码

    Java编程语言在软件开发中占据着重要地位,其强大的类库和面向对象的...而像FindBugs这样的静态分析工具,更是能提升代码质量,减少bug的发生。对于Java开发者来说,熟练掌握这些技巧是提高工作效率和产品质量的关键。

    cat2bug-jlog Java错误日志收集框架

    《猫捉虫子:深入解析cat2bug-jlog Java错误日志收集框架》 在Java开发过程中,错误日志的收集与分析对于故障排查、性能优化以及系统稳定性维护至关重要。"cat2bug-jlog"正是这样一款专为Java开发者设计的日志收集...

    这个修正了之前的BUG

    1. **BUG修复**:标题提到“修正了之前的BUG”,这意味着该压缩包可能包含一个或多个源代码文件,这些文件对原有的程序错误进行了修复。在软件开发过程中,BUG修复是持续改进和优化过程的一部分,它有助于提高软件的...

    Bug不能重现的原因分析及其对策

    例如,在增加一个 Role 时,输入某些数据,然后点击 Save 后出现了java.lang.NullPointerException 的错误,但不知道为什么发生了这个错误,也无法重现此 Bug。 三、 测试用例不充分 测试用例不充分也是导致 Bug ...

    bugfree中的bug导出、导入功能

    在Bugfree 2.x版本中,这两个功能得到了进一步的优化,以满足团队协作和数据交换的需求。 首先,让我们深入了解一下Bugfree的Bug导出功能。在旧版本中,Bugfree可能只支持特定格式的数据导出,而在2.x版本中,这一...

    keil51 bug实例

    例如,如果`WriteData`有一个隐含的数组索引限制,149可能是这个范围内的最后一个有效值,而150超出了这个范围,从而导致越界访问。在C语言中,数组越界是常见的运行时错误,可能导致程序崩溃、数据损坏甚至安全漏洞...

    bugfree,bug管理

    2. **分类与优先级设定**:每个bug可以根据其严重性和紧急性被分配不同的优先级和类别,如功能缺陷、性能问题、界面错误等,这样便于团队根据这些信息合理安排修复顺序。 3. **状态管理**:bug的状态可以随着处理...

    Bug管理指南Bug管理指南ppt

    **Bug管理指南** 在软件开发过程中,Bug管理是至关重要的环节,它确保了软件质量的不断提升和用户体验的优化。本指南旨在提供一个全面的框架,帮助理解和实施有效的Bug管理流程。 **Bug的相关概念** 1. **什么是...

Global site tag (gtag.js) - Google Analytics