【发布时间】:2019-10-15 16:44:05
【问题描述】:
这可能是一个愚蠢的问题,但我最近正在学习 gem5,并且我能够使用该软件在系统调用仿真和完整系统仿真中模拟我的 C 程序。但是,每当我尝试在其中模拟任何 Java 程序时,都会收到此错误(系统调用仿真):
gem5 Simulator System. http://gem5.org
gem5 is copyrighted software; use the --copyright option for details.
gem5 compiled Aug 26 2019 12:58:15
gem5 started Sep 5 2019 14:56:02
gem5 executing on (...), pid 6115
command line: build/X86/gem5.opt configs/learning_gem5/part1/test.py
Global frequency set at 1000000000000 ticks per second
warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (512 Mbytes)
fatal: fatal condition !obj_file occurred: Cannot load object file /home/taoliveira/Downloads/Gem5/gem5/configs/learning_gem5/part1/../../../my-progs/MergeSort/bin/x86/linux/MergeSort.
Memory Usage: 661468 KBytes
在这种情况下,我尝试了一个简单的合并排序 Java 程序。它在 gem5 模拟器之外正常编译和执行。在我的机器所在的 .py 文件中(它是 gem5 教程的 simple.py),二进制文件是指向 .jar 文件的路径。我听说 .jar 在 gem5 中无法正常工作,但我不知道改用什么。 那么,我必须做什么才能在 gem5 模拟器中运行非 C 程序?在这种情况下,我必须做什么才能运行一个 java 程序?
我到处寻找答案,但找不到。任何人都可以帮助我吗?提前致谢。
我使用的是 Ubuntu 18.04 和 Java 1.8.0_201。
编辑:我尝试将我的 Java 代码转换为本机机器代码 (x86) 并使用 GraalVM 完成,然后我将其传递给 runscript,就像我对 C 程序所做的那样。但是,它在加载脚本时向我显示了一个新错误:
loading script...
Fatal error: Failed to create a new Isolate. (code 6)
以前从未见过,谷歌搜索时没有发现任何关于它的信息。
【问题讨论】: