JVM:无法检测初始线程堆栈位置 - find_vma失败

时间:2011-01-26 00:20:32

标签: java jvm

The compilation was successful
The multiplication should have been performed at compile time without any code being generated.
However, your solution generated the following code:
    Java HotSpot(TM) 64-Bit Server VM warning: Can't detect initial thread stack location - find_vma failed
        mov  ax,5
        mov  ax,6
        mul  ax
    [ the expected value was 30, but you calculated the result as 6 ]

我在学校的系统中输入了一些代码,我收到了此错误消息。我不明白它所说的部分“乘法应该在编译时执行,而不会生成任何代码。”

任何人都知道我可能做错了什么?

(我无法透露我输入的代码,因为我不希望它出现在搜索引擎中。有没有办法可以私下显示我输入的代码?)

5 个答案:

答案 0 :(得分:14)

在我的Ubuntu 10.04 / 64位系统上,java无法访问/proc文件系统。 具体来说,我在chroot中运行,但没有安装它:

mount -t proc none /proc

答案 1 :(得分:3)

我在chroot环境中遇到了同样的问题。正如@chronospoon所说,这是因为java无法访问/ proc文件系统。

但是,正确的安装命令如下(注意两个proc都不以/为前缀),如here中所述:

mount -t proc none proc

要检查安装是否成功,只需检查proc目录是否有任何文件。

答案 2 :(得分:1)

消息“无法检测初始线程堆栈位置”非常常见,例如,请参阅here and here。剩下的部分很奇怪,汇编代码纯属无稽之谈。我不在乎,这不是你的错。

答案 3 :(得分:0)

我怀疑这是您正在使用的“学校系统”的工件,这似乎是自动化代码测试的一些框架。

  • 该消息看起来特定于我的系统。
  • 如果消息不是特定于系统的,那么生产应用程序向最终用户报告模糊的HotSpot错误是一个(可以说是)错误。

所以,我认为你应该问管理系统的人,并且(大概)理解这个消息的含义。

答案 4 :(得分:0)

Can't detect initial thread stack location表示Java安装不完整或已损坏。

在编译时有关乘法的东西看起来不像是来自Java,而是来自你学校正在使用的某种IDE或编译工具。无论这个“学校系统”是什么,你都需要询问谁对这些错误信息负责。