我是java字节码世界的新手.我有一些涉及字节码的调试任务.经过时我注意到一些看起来很可疑的值,但我不确定.这是完整字节码的一部分

// access flags 0x100A

private static synthetic $jacocoInit()[Z

GETSTATIC ClassUnderTest.$jacocoData : [Z

DUP

IFNONNULL L0

POP

LDC -1475355800743669619

LDC "ClassUnderTest"

BIPUSH 64

INVOKESTATIC org/jacoco/agent/rt/internal_1f1cc91/Offline.getProbes (JLjava/lang/String;I)[Z

DUP

PUTSTATIC ClassUnderTest.$jacocoData : [Z

L0

LDC -1475355800743669619就是我所关注的.到目前为止我学到的是,这是一个类中常量值的字段.

如果LDC值可能是否定的,我很困惑?

我遇到的另一个问题是,使用JDK-8,同一类的LDC值为正,但JDK-11为负值.所以我的问题是,它还依赖于JDK吗?

解决方法:

Java程序集没有标准化格式,因此可能存在差异,具体取决于您用于获取文本格式的工具.

显然,您使用的工具不会打印LDC指令使用的常量池索引(确实必须为正),而是来自池的实际常量值.最强的指标是后续指令,显示实际的String值而不是常量池索引.

这适用于随后调用getProbes(JLjava / lang / String; I),它需要在堆栈上使用long,String和int.

> LDC -1475355800743669619在堆栈上推送文字长值-1475355800743669619,该值有效,因为-1475355800743669619适合长值范围(已签名)

> LDC“ClassUnderTest”将对表示“ClassUnderTest”的String的引用推送到堆栈

> BIPUSH 64将文字int值64推送到堆栈

那么,你在堆栈上有一个long,一个String和一个int来调用getProbes.

由于long值是getProbes的第一个参数的参数,因此方法getProbes确定其含义以及负值或正值是否是合理的参数,以及JDK 8或JDK 11的值是否必须相同.

Each class loaded at runtime needs a unique identity to associate coverage data with. JaCoCo creates such identities by a CRC64 hash code of the raw class definition.

如果这是我们在这里看到的长值,那么重新编译具有不同JDK版本的类可能会改变实际值,而负值则完全合理.

请注意,如果您使用javap来获取文本输出,它看起来更像

0: getstatic #42 // ClassUnderTest.$jacocoData : [Z

3: dup

4: ifnonnull 22

7: pop

9: ldc2_w #43 // long -1475355800743669619l

11: ldc #44 // String ClassUnderTest

13: bipush 64

15: invokestatic #45 // org/jacoco/agent/rt/internal_1f1cc91/Offline."getProbes":(JLjava/lang/String;I)[Z

18: dup

19: putstatic #42 // ClassUnderTest.$jacocoData : [Z

确实在行尾用注释表单显示正常量池索引和实际值.当然,我只是编写了数字,因为我没有原始的类文件.这仅仅是为了说明答案开头所述的事实,Java程序集输出没有标准化的形式.您可以在实际的字节代码上运行javap.

标签:jacoco,java-11,java,jvm,bytecode

来源: https://codeday.me/bug/20190827/1744626.html

ldc java_java – LDC指令代码的负值是什么意思?相关推荐

  1. 计算机负责指令代码的是,计算机组成原理习题2新版资料.doc

    文档介绍: 计算机系统概论(2~8题)2.下列描述中B是正确.A.控制器能了解.解释并实施全部指令及存放结果B.一台计算机包含输入.输出.控制.存放及算术逻辑运算五个部分C.全部数据运算全部在CPU控 ...

  2. 我的世界服务器自定义代码,《我的世界》服务器指令代码秘籍大全

    <我的世界>服务器指令代码秘籍大全 2017-05-11 来源:Ali213 作者:佚名 tele 传送 time [set|get|day|night [minute|hour|day ...

  3. 我的世界服务器物品代码,我的世界指令代码大全 2021通用指令代码汇总[多图]...

    我的世界指令代码还有很多玩家都不清楚,那么手机版和电脑版通用指令是什么,大家输入什么代码可以使用,还不知道的玩家一起来看看吧. 我的世界2021通用指令代码汇总 /kill @e[type = evo ...

  4. csgo服务器显示指令,CSGO国服控制台怎么打开 CSGO国服指令代码大全

    CSGO国服的控制台怎么打开?其中相关的设置都有哪些指令?很多玩家们在CSGO国服中不知道控制台的打开方式和相关的指令,为了让玩家们都了解这些,今天一游网小编小熊巴巴就为各位玩家们带来了CSGO国服控 ...

  5. 泰拉瑞亚指令代码大全 无限钱无敌作弊码一览

    泰拉瑞亚游戏中,玩家们可以通过控制台输入代码,来获取资源,降低游戏难度,以及创造有利条件,以下是泰拉瑞亚指令代码大全: 泰拉瑞亚2021最新代码作弊代码汇总: 完整控制台命令概述. (玩家可以用Ctr ...

  6. rust 飞天指令_腐蚀RUST代码大全 腐蚀RUST指令代码一览

    腐蚀(RUST)是一款开放世界生存游戏,在游戏中玩家可以使用指令代码来简便自己的游戏,下面就来分享一下腐蚀RUST指令代码大全. 腐蚀RUST指令代码一览 基本指令 (以下在聊天框内输入) /msg ...

  7. 我的世界服务器如何修改天气,我的世界怎么改变天气 我的世界改变天气指令代码大全...

    我的世界怎么改变天气?很多玩家都知道我的世界可以认为的修改天气,但是大家都记不清我的世界修改天气的代码是什么,下面小编就为各位玩家带来:我的世界改变天气指令代码大全,一起来看看吧~ 我的世界怎么改变天 ...

  8. 《C#零基础入门之百识百例》(九十一)预处理器指令 -- 代码示例

    C#零基础入门 预处理器指令 -- 代码示例 前言 一,预处理器指令 1.1 概念 1.2 常用预处理指令 1.3 语法规则 二,声明指令 2.1 声明指令概念 2.2 代码示例 三,条件编译指令 3 ...

  9. 方舟单机/管理员特殊物品指令代码大全

    方舟单机/管理员特殊物品指令代码大全 (代码不区分大小写) 游戏默认[Tab]键可打开控制台输入代码; 以下内容较多可配合Ctrl+F搜索快速定位,对代码三连击全段选中,复制后粘贴进游戏控制台按[回车 ...

  10. csgo调出参数_CSGO有哪些指令代码_参数设置大全_3DM网游

    在CSGO中有很多参数设置,大致分为个人参数和服务器参数,很多人对于这些指令并不是非常清楚,那么游戏里有哪些指令代码呢?小编下面就将带来CSGO参数设置大全,有兴趣的的同学一起来看看吧. <CS ...

最新文章

  1. 大数据分析:财务报表公开数据
  2. linux git指令不存在,一些常用的Git命令
  3. 《算法竞赛进阶指南》 0x50 动态规划
  4. 项目背景怎么描述_产品经理写简历,如何让「项目经验」更出众?
  5. metricbeat监控多个linux_Azure 虚拟机内存利用率监控(2)
  6. docker --命令
  7. 单源最短路(SPFA算法)
  8. php 伪静态 获取当前页面路径_php url伪静态过程详解
  9. java类 英文文献_java英文参考文献
  10. .NET(C#、VB)APP开发——Smobiler平台控件介绍:AliPay组件
  11. rfid破解 BLE Hacking
  12. 赶紧收藏!网上疯传的150个ChatGPT「超级提问模型」,都在这里了
  13. 2021-2027全球及中国攀冰专用装备行业研究及十四五规划分析报告
  14. Java多线程基础(一)
  15. 安全隔离与信息交换系统系统构架及工作原理
  16. 华为数通 软开2021实习生 业务主管面 (已通过)
  17. 腾讯云轻服务器yum安装报错的解决办法
  18. eos 连接mysql_EOS智能合约中数据库的使用与常见问题
  19. oracle12541 linux,PLSQL连接Linux上的oracle数据库出现,ORA-12541 TNS 无监听程序
  20. 3d打印(4):解决打印一边好一边错位问题

热门文章

  1. 计算机六级准考证,99宿舍如何查询英语六级准考证号
  2. 计算机网络:网络地址-MAC地址、IP地址、子网掩码
  3. 力扣刷题 DAY_77 贪心
  4. 一加5应用未安装怎么解决_如何解决一加手机x安装不了软件下载的问题?
  5. DNS解析域名解析过程
  6. ‘click‘ handler took 3858s如何解决
  7. 语法分析器之递归子程序法
  8. Windows安装ElasticSearch 7.3.0
  9. 弗吉尼亚理工计算机科学排名,弗吉尼亚理工大学计算机科学专业
  10. 大数据可视化之MyBatis笔记(1)