java - 故障转储字符串中的 L 和 IL 是什么意思?

标签 java crash jvm crash-dumps

这个问题在这里已经有了答案:





What is this: [Ljava.lang.Object;?

(2 个回答)



Guess method line number from JVM fatal error log

(1 个回答)


去年关闭。




在进行故障转储时,我遇到了以下行

j  java.awt.EventDispatchThread.pumpEventsForFilter(ILjava/awt/Conditional;Ljava/awt/EventFilter;)V+35

我有几个问题是我急切想了解的。

字符串中的 IL 和 L 代表什么ILjava/awt/Conditional;Ljava/awt/EventFilter;
字符串末尾的 V+35 是什么?

最佳答案

这些是方法签名中的类型字符串。

(ILjava/awt/Conditional;Ljava/awt/EventFilter;)V
I意味着 intLjava/awt/Conditional;意味着 java.awt.ConditionalLjava/awt/EventFilter;意味着 java.awt.EventFilterV意味着 void .

所以调用栈上的方法是
  void pumpEventsForFilter(int, Conditional, EventFilter)

此内部类型字符串语法记录在 javadoc 中。为 Class.getName()并且也在JVM规范中。 (相同的语法出现在 Object.toString 生成的字符串中......假设它没有被更人性化的东西覆盖。)

+35是字节码偏移量;即指示方法执行在此堆栈帧中的位置。

关于java - 故障转储字符串中的 L 和 IL 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62465764/

相关文章:

java - 如何从@ComponentScan 包中获取接口(interface)列表

crash - 总线错误的可能原因:物理地址不存在

java - 当 Eden 未满时发生 Minor GC。当Eden未满时,会出现Minor GC的原因是什么?

java - 了解 java 线程转储中的行

java - 如何在java中为zip存档启用密码?

android 输入表单上的 java.lang.ArrayIndexOutOfBoundsException

Java Android 动态更改 ImageView 的位置

android - Android AsyncTask崩溃

java - Eclipse 随机停止加载

java - Byte Buddy 未加载类并抛出未找到类