Java JVM:Can';t检测初始线程堆栈位置-查找_vma失败
我在学校的系统中输入了一些代码,收到了这个错误消息。我不理解它说“乘法应该在编译时执行,而不生成任何代码”的部分 有人知道我可能做错了什么吗Java JVM:Can';t检测初始线程堆栈位置-查找_vma失败,java,jvm,Java,Jvm,我在学校的系统中输入了一些代码,收到了这个错误消息。我不理解它说“乘法应该在编译时执行,而不生成任何代码”的部分 有人知道我可能做错了什么吗 (我不能透露我在其中输入的代码,因为我不想让它出现在搜索引擎中。有没有办法让我私下显示我输入的代码?我怀疑这是您正在使用的“学校系统”的产物,它似乎是某种自动化代码测试的框架 这条消息看起来是我特有的系统 如果消息不是特定于系统的,那么生产应用程序向最终用户报告模糊热点错误就是一个bug(可以说) 因此,我认为您应该询问管理系统的人员,并且(大概)理解
(我不能透露我在其中输入的代码,因为我不想让它出现在搜索引擎中。有没有办法让我私下显示我输入的代码?我怀疑这是您正在使用的“学校系统”的产物,它似乎是某种自动化代码测试的框架
- 这条消息看起来是我特有的系统
- 如果消息不是特定于系统的,那么生产应用程序向最终用户报告模糊热点错误就是一个bug(可以说)
因此,我认为您应该询问管理系统的人员,并且(大概)理解该消息的含义。无法检测到初始线程堆栈位置表明Java安装不完整或损坏
关于编译时乘法的东西看起来不像来自Java,而是来自你们学校正在使用的某种IDE或编译工具。无论这个“学校系统”是什么,您都需要询问负责人这些错误消息。消息“无法检测初始线程堆栈位置”非常常见,请参见例如。剩下的部分很奇怪,汇编代码完全是胡说八道。我不在乎,这不是你的错。在我的Ubuntu 10.04/64位系统上,
java
无法访问/proc
文件系统。
具体地说,我在一个chroot
中运行,但没有安装它:
mount-t proc none/proc
我在chroot
环境中遇到了相同的问题。正如@chronospoon所建议的,这是因为java无法访问/proc文件系统
但是,正确的安装命令如下所示(请注意,两个proc的前缀都不是/
),如中所述:
要检查装载是否成功,只需检查
proc
目录是否有任何文件。您的课程是关于编写编译器的吗?如果没有,您希望为作业做什么?您可以将代码发布到web服务器,并包含一个请求搜索引擎不要为其编制索引的文件。显然,并不是所有的搜索引擎都会尊重robots.txt,但大型搜索引擎会尊重。这看起来很像将基于堆栈的代码(JVM)错误地转换为基于寄存器的代码(x86,MIPS)时生成的程序集。好吧,你可能是对的。因为它可以在BlueJ上正确编译和运行,但当我将其输入系统时,会收到一条错误消息。我目前正在度假,所以我必须等到我恢复大学时再联系我的导师(课程网站上没有电子邮件)。好吧,你可能是对的。因为它可以在BlueJ上正确编译和运行,但当我将其输入系统时,会收到一条错误消息。我目前正在度假,所以我必须等到我恢复大学时再联系我的导师(课程网站上没有电子邮件)。我编程汇编已经有一段时间了,但我也认为将两个不同的值移动到同一寄存器并在该寄存器上执行多条指令不太可能有效。然而,结果为6可能是正确的,因为AX可能与另一个寄存器相乘,而这个寄存器恰好有一个1。不,好吧,mul-AX
意味着AX=AX*AX
,所以这三条指令可以被mov-AX,36
替换。啊,这是为了在调用chroot之前安装/proc文件系统,我的是安装在chroot里面的。
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 ]
mount -t proc none proc