故障转储字符串中的 L 和 IL 是什么意思?
What does L and IL mean in the crash dump string?
在处理故障转储时,我遇到了以下行
j java.awt.EventDispatchThread.pumpEventsForFilter(ILjava/awt/Conditional;Ljava/awt/EventFilter;)V+35
我有几个问题很想知道。
IL和L在字符串中代表什么ILjava/awt/Conditional;Ljava/awt/EventFilter;
字符串末尾的V+35是什么?
Oracle 关于 fatal error log 的文档在回答您的问题时非常肤浅。
看起来 至少对您的故障转储中的 +35
位进行了详尽的解释。根据那个答案,这是给你生成的字节码中的偏移量。
IL
和 L
仍然是个谜。
这些是方法签名中的类型字符串。
(ILjava/awt/Conditional;Ljava/awt/EventFilter;)V
I
表示int
Ljava/awt/Conditional;
表示java.awt.Conditional
Ljava/awt/EventFilter;
表示java.awt.EventFilter
V
表示void
。
所以调用栈上的方法是
void pumpEventsForFilter(int, Conditional, EventFilter)
此内部类型字符串语法记录在 javadoc for Class.getName()
以及 JVM 规范中。 (相同的语法出现在 Object.toString
生成的字符串中......假设它没有被更人性化的东西覆盖。)
而+35
是一个字节码偏移量;即指示方法执行在该堆栈框架中的位置。
在处理故障转储时,我遇到了以下行
j java.awt.EventDispatchThread.pumpEventsForFilter(ILjava/awt/Conditional;Ljava/awt/EventFilter;)V+35
我有几个问题很想知道。
IL和L在字符串中代表什么ILjava/awt/Conditional;Ljava/awt/EventFilter;
字符串末尾的V+35是什么?
Oracle 关于 fatal error log 的文档在回答您的问题时非常肤浅。
看起来 +35
位进行了详尽的解释。根据那个答案,这是给你生成的字节码中的偏移量。
IL
和 L
仍然是个谜。
这些是方法签名中的类型字符串。
(ILjava/awt/Conditional;Ljava/awt/EventFilter;)V
I
表示int
Ljava/awt/Conditional;
表示java.awt.Conditional
Ljava/awt/EventFilter;
表示java.awt.EventFilter
V
表示void
。
所以调用栈上的方法是
void pumpEventsForFilter(int, Conditional, EventFilter)
此内部类型字符串语法记录在 javadoc for Class.getName()
以及 JVM 规范中。 (相同的语法出现在 Object.toString
生成的字符串中......假设它没有被更人性化的东西覆盖。)
而+35
是一个字节码偏移量;即指示方法执行在该堆栈框架中的位置。