ldc java_java – LDC指令代码的负值是什么意思?
我是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指令代码的负值是什么意思?相关推荐
- 计算机负责指令代码的是,计算机组成原理习题2新版资料.doc
文档介绍: 计算机系统概论(2~8题)2.下列描述中B是正确.A.控制器能了解.解释并实施全部指令及存放结果B.一台计算机包含输入.输出.控制.存放及算术逻辑运算五个部分C.全部数据运算全部在CPU控 ...
- 我的世界服务器自定义代码,《我的世界》服务器指令代码秘籍大全
<我的世界>服务器指令代码秘籍大全 2017-05-11 来源:Ali213 作者:佚名 tele 传送 time [set|get|day|night [minute|hour|day ...
- 我的世界服务器物品代码,我的世界指令代码大全 2021通用指令代码汇总[多图]...
我的世界指令代码还有很多玩家都不清楚,那么手机版和电脑版通用指令是什么,大家输入什么代码可以使用,还不知道的玩家一起来看看吧. 我的世界2021通用指令代码汇总 /kill @e[type = evo ...
- csgo服务器显示指令,CSGO国服控制台怎么打开 CSGO国服指令代码大全
CSGO国服的控制台怎么打开?其中相关的设置都有哪些指令?很多玩家们在CSGO国服中不知道控制台的打开方式和相关的指令,为了让玩家们都了解这些,今天一游网小编小熊巴巴就为各位玩家们带来了CSGO国服控 ...
- 泰拉瑞亚指令代码大全 无限钱无敌作弊码一览
泰拉瑞亚游戏中,玩家们可以通过控制台输入代码,来获取资源,降低游戏难度,以及创造有利条件,以下是泰拉瑞亚指令代码大全: 泰拉瑞亚2021最新代码作弊代码汇总: 完整控制台命令概述. (玩家可以用Ctr ...
- rust 飞天指令_腐蚀RUST代码大全 腐蚀RUST指令代码一览
腐蚀(RUST)是一款开放世界生存游戏,在游戏中玩家可以使用指令代码来简便自己的游戏,下面就来分享一下腐蚀RUST指令代码大全. 腐蚀RUST指令代码一览 基本指令 (以下在聊天框内输入) /msg ...
- 我的世界服务器如何修改天气,我的世界怎么改变天气 我的世界改变天气指令代码大全...
我的世界怎么改变天气?很多玩家都知道我的世界可以认为的修改天气,但是大家都记不清我的世界修改天气的代码是什么,下面小编就为各位玩家带来:我的世界改变天气指令代码大全,一起来看看吧~ 我的世界怎么改变天 ...
- 《C#零基础入门之百识百例》(九十一)预处理器指令 -- 代码示例
C#零基础入门 预处理器指令 -- 代码示例 前言 一,预处理器指令 1.1 概念 1.2 常用预处理指令 1.3 语法规则 二,声明指令 2.1 声明指令概念 2.2 代码示例 三,条件编译指令 3 ...
- 方舟单机/管理员特殊物品指令代码大全
方舟单机/管理员特殊物品指令代码大全 (代码不区分大小写) 游戏默认[Tab]键可打开控制台输入代码; 以下内容较多可配合Ctrl+F搜索快速定位,对代码三连击全段选中,复制后粘贴进游戏控制台按[回车 ...
- csgo调出参数_CSGO有哪些指令代码_参数设置大全_3DM网游
在CSGO中有很多参数设置,大致分为个人参数和服务器参数,很多人对于这些指令并不是非常清楚,那么游戏里有哪些指令代码呢?小编下面就将带来CSGO参数设置大全,有兴趣的的同学一起来看看吧. <CS ...
最新文章
- 大数据分析:财务报表公开数据
- linux git指令不存在,一些常用的Git命令
- 《算法竞赛进阶指南》 0x50 动态规划
- 项目背景怎么描述_产品经理写简历,如何让「项目经验」更出众?
- metricbeat监控多个linux_Azure 虚拟机内存利用率监控(2)
- docker --命令
- 单源最短路(SPFA算法)
- php 伪静态 获取当前页面路径_php url伪静态过程详解
- java类 英文文献_java英文参考文献
- .NET(C#、VB)APP开发——Smobiler平台控件介绍:AliPay组件
- rfid破解 BLE Hacking
- 赶紧收藏!网上疯传的150个ChatGPT「超级提问模型」,都在这里了
- 2021-2027全球及中国攀冰专用装备行业研究及十四五规划分析报告
- Java多线程基础(一)
- 安全隔离与信息交换系统系统构架及工作原理
- 华为数通 软开2021实习生 业务主管面 (已通过)
- 腾讯云轻服务器yum安装报错的解决办法
- eos 连接mysql_EOS智能合约中数据库的使用与常见问题
- oracle12541 linux,PLSQL连接Linux上的oracle数据库出现,ORA-12541 TNS 无监听程序
- 3d打印(4):解决打印一边好一边错位问题
热门文章
- 计算机六级准考证,99宿舍如何查询英语六级准考证号
- 计算机网络:网络地址-MAC地址、IP地址、子网掩码
- 力扣刷题 DAY_77 贪心
- 一加5应用未安装怎么解决_如何解决一加手机x安装不了软件下载的问题?
- DNS解析域名解析过程
- ‘click‘ handler took 3858s如何解决
- 语法分析器之递归子程序法
- Windows安装ElasticSearch 7.3.0
- 弗吉尼亚理工计算机科学排名,弗吉尼亚理工大学计算机科学专业
- 大数据可视化之MyBatis笔记(1)