请解释" java frame"来自stacktrace的意思?

时间:2014-10-01 07:46:00

标签: java compiler-errors bytecode jit

在转储中,我看到以下信息:

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  com.barcap.fox.log.Syslog.plog(ILjava/lang/String;)Z+0
j  com.barcap.fox.log.Syslog.log(ILjava/lang/String;)Z+317
j  com.barcap.fox.log.Syslog$BS.flush()V+37
j  java.io.PrintStream.write([BII)V+30
....

您能否解释一下Java frame

的含义

我试图谷歌它,但我只看到与swing相关的结果(Jframe)。

2 个答案:

答案 0 :(得分:2)

在其他语言中,这将被称为“堆栈帧”,但Java虚拟机规范仅使用术语“帧”。它是调用堆栈的一部分,专门用于一个方法的调用,其中该方法保持其状态(局部变量,参数等)。

答案 1 :(得分:2)

框架本质上是专用于堆栈上的函数的空间。

Stack frame illustration

来自here.的图片

“Java框架”表示该框架用于Java代码。有这些类型的框架:

Native C frame(C),解释的Java frame(j),VM frame(V),VM生成的stub帧(v),其他帧类型,包括编译的Java帧(J)

See this.