java - 如何在 Java 堆栈跟踪中读取这一行?

标签 java

堆栈因lambda的参与而变得复杂(注意由于混淆导致行号丢失)。 “access$lambda$12”的实际含义是什么?有没有办法在不知道实际行号的情况下在代码中找到它?

at com.group.RKGroup.com.my.MyClass access$lambda$12(com.group.RKGroup,int,com.my.PType) (RKGroup.java:43324)

行号是无用的,因为这个堆栈跟踪被 Proguard 混淆了。

最佳答案

在正常情况下,这表示在名为 access 的方法中声明的 lambda。可能是方法中的第 12 个 lambda ....虽然我不敢发誓。

Note that the line number is lost due to obfuscation.

好的,这就解释了如何将 void [sic] 作为类名。但这也意味着方法名称也可能是伪造的。

唯一可以确定这一行所指的是尝试对字节码进行逆向工程。

在这一点上,我建议您将堆栈跟踪发送给该软件的供应商,让他们帮助您。如果他们不能或不愿意,请请求访问源代码。如果他们不能或不会给您访问权限,请寻找新产品。调试别人的混淆代码是一场噩梦。

关于java - 如何在 Java 堆栈跟踪中读取这一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48929384/

相关文章:

java - Logback JMSAppender 不清理与 ActiveMQ 的连接

java - 序列化对象会包含元数据吗?

java - 如何在单个 Java 服务器上处理超过一百万个并发客户端?

java - 如何编写 Cron 表达式在每个月的第三个星期日晚上 11 点执行触发器?

java - Vaadin BeanFieldGroup - 绑定(bind)嵌套属性时为 "Property is not cascaded"

java - 无法使用 processbuilder 运行 java 命令

来自伪代码的 Java 模拟退火

java - java 最大整数值

java - 如何将我的数据从 csv 文件获取到 DataProvider

java - 解析包含百万字的文档