在完整系统仿真(gem5)中运行任何脚本时出错

时间:2019-10-10 20:31:15

标签: x86 gem5

我无法在gem5完整系统仿真中运行脚本。

我是gem5的新手,并且正在关注本教程:http://learning.gem5.org/book/part3/fs_config.html#running-a-full-system-simulation

我试图在Full System Simulation中运行gem5,并在其参数中传递脚本。模拟正常启动,如果我不传递任何脚本参数,它将正常工作。但是,每当我在参数中传递任何脚本时,在这种情况下,即教程(test.rcS)中存在的同一运行脚本,都会出现以下错误:

gem5 Simulator System.  http://gem5.org
gem5 is copyrighted software; use the --copyright option for details.

gem5 compiled Sep 16 2019 12:12:46
gem5 started Oct 10 2019 17:17:06
gem5 executing on verites-desktop, pid 3543
command line: build/X86/gem5.opt configs/learning_gem5/part4/run.py --script test.rcS

Global frequency set at 1000000000000 ticks per second
warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (4096 Mbytes)
info: kernel located at: /home/taoliveira/Downloads/Gem5/gem5/configs/learning_gem5/part4/x86_64-vmlinux-2.6.22.9
system.pc.com_1.device: Listening for connections on port 3456
      0: rtc: Real-time clock set to Sun Jan  1 00:00:00 2012
0: system.remote_gdb: listening for remote gdb on port 7000
warn: Reading current count from inactive timer.
Running the simulation
info: Entering event queue @ 0.  Starting simulation...
warn: Don't know what interrupt to clear for console.
warn: x86 cpuid: unknown family 0x8086
warn: Tried to clear PCI interrupt 14
warn: Unknown mouse command 0xe1.
warn: instruction 'wbinvd' unimplemented
panic: could not open file test.rcS
Memory Usage: 3640440 KBytes
Program aborted at tick 5106342037509
--- BEGIN LIBC BACKTRACE ---
build/X86/gem5.opt(_Z15print_backtracev+0x2c)[0x558acb71ca8c]
build/X86/gem5.opt(_Z12abortHandleri+0x4a)[0x558acb72eada]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x12890)[0x7f1d67f42890]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0xc7)[0x7f1d66750e97]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x141)[0x7f1d66752801]
build/X86/gem5.opt(+0x4fe31f)[0x558aca6f031f]
build/X86/gem5.opt(_ZN10PseudoInst8readfileEP13ThreadContextmmm+0x203)[0x558acb769ee3]
build/X86/gem5.opt(_ZNK10X86ISAInst10M5readfile7executeEP11ExecContextPN5Trace10InstRecordE+0x7b)[0x558acad9e4cb]
build/X86/gem5.opt(_ZN15AtomicSimpleCPU4tickEv+0x4da)[0x558acb7abd4a]
build/X86/gem5.opt(_ZN10EventQueue10serviceOneEv+0xd9)[0x558acb724c69]
build/X86/gem5.opt(_Z9doSimLoopP10EventQueue+0x87)[0x558acb745077]
build/X86/gem5.opt(_Z8simulatem+0xcba)[0x558acb7460ca]
build/X86/gem5.opt(+0x78f42e)[0x558aca98142e]
build/X86/gem5.opt(+0x5b177e)[0x558aca7a377e]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x5f82)[0x7f1d681fc522]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x7d8)[0x7f1d6832ebf8]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x6364)[0x7f1d681fc904]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x7d8)[0x7f1d6832ebf8]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCode+0x19)[0x7f1d681f6409]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x68a5)[0x7f1d681fce45]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x7d8)[0x7f1d6832ebf8]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x6364)[0x7f1d681fc904]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x7d8)[0x7f1d6832ebf8]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCode+0x19)[0x7f1d681f6409]
/usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyRun_StringFlags+0x76)[0x7f1d682a66d6]
build/X86/gem5.opt(_Z6m5MainiPPc+0x83)[0x558acb72d6f3]
build/X86/gem5.opt(main+0x38)[0x558aca6ad308]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7)[0x7f1d66733b97]
build/X86/gem5.opt(_start+0x2a)[0x558aca6d7b1a]
--- END LIBC BACKTRACE ---
Aborted (core dumped) 

我试图以完全相同的方式运行一个简单的mergesort C程序,并遇到了相同的问题。我应该怎么做才能解决这个问题? 不知道它是否相关,但是我正在使用Ubuntu 18.04。

1 个答案:

答案 0 :(得分:0)

我可以通过一些调试来解决我的问题。有些代码无法正常工作,总是在SysPaths.py中创建空路径。由于某些原因,这行不在我的代码中:

filepath = os.path.join(self._subdir, filename)

此外,paths变量中的指定路径是错误的,因为我忘记了在路径的开头使用反斜杠('/')。 感谢您的帮助,Ciro。