【问题标题】:gem5 has encountered segmentation fault, how to fixgem5遇到分段错误,如何修复
【发布时间】:2022-06-27 16:41:41
【问题描述】:

所以我正在关注 https://www.gem5.org/documentation/learning_gem5/part1/extending_configs 上的教程 但是当我构建它时,我得到了分段错误。 这是我要编译的代码:

import m5
from m5.objects import *
system = System()

system.clk_domain = SrcClockDomain()
system.clk_domain.clock = '1GHz'
system.clk_domain.voltage_domain = VoltageDomain()

system.mem_mode = 'timing'
system.mem_ranges = [AddrRange('512MB')]

system.cpu = TimingSimpleCPU()

system.membus = SystemXBar()

system.cpu.icache_port = system.membus.cpu_side_ports
system.cpu.dcache_port = system.membus.cpu_side_ports

system.cpu.createInterruptController()
#system.cpu.interrupts[0].pio = system.membus.master
#system.cpu.interrupts[0].int_master = system.membus.slave
#system.cpu.interrupts[0].int_slave = system.membus.master

system.system_port = system.membus.slave

system.mem_ctrl = MemCtrl()
system.mem_ctrl.dram = DDR3_1600_8x8()
system.mem_ctrl.dram.range = system.mem_ranges[0]
system.mem_ctrl.port = system.membus.mem_side_ports

process = Process()

process.cmd = ['cpu_tests/benchmarks/bin/arm/Bubblesort']

system.cpu.workload = process
system.cpu.createThreads()

root = Root(full_system = False, system = system)
m5.instantiate()

print("Begginning simulation")
exit_event = m5.simulate()

print("Done simulating at tick %d because %s " % (m5.curTick(),exit_event.getCause()))

这是我得到的错误:

build/ARM/base/statistics.hh:277: warn: One of the stats is a legacy stat. Legacy stat is a stat that does not belong to any 

statistics::Group. Legacy stat is deprecated.
gem5 Simulator System.  http://gem5.org
gem5 is copyrighted software; use the --copyright option for details.

gem5 version 21.1.0.2
gem5 compiled Dec 19 2021 17:27:33
gem5 started Dec 19 2021 17:47:09
gem5 executing on denis-VirtualBox, pid 12622
command line: build/ARM/gem5.opt

 configs/tutorial/simple.py

warn: membus.slave is deprecated. `slave` is now called `cpu_side_ports`
Global frequency set at 1000000000000 ticks per second
warn: No dot file generated. Please install pydot to generate the dot file and pdf.
build/ARM/mem/mem_interface.cc:791: warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (512 Mbytes)
Begginning simulation
build/ARM/sim/simulate.cc:107: info: Entering event queue @ 0.  Starting simulation...
gem5 has encountered a segmentation fault!

--- BEGIN LIBC BACKTRACE ---
build/ARM/gem5.opt(+0x1e6c480)[0x560ccbebd480]
build/ARM/gem5.opt(+0x1e8ac45)[0x560ccbedbc45]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x153c0)[0x7effdd1173c0]
build/ARM/gem5.opt(+0xd3c29b)[0x560ccad8d29b]
build/ARM/gem5.opt(+0x791543)[0x560cca7e2543]
build/ARM/gem5.opt(+0x7896bd)[0x560cca7da6bd]
build/ARM/gem5.opt(+0x78a064)[0x560cca7db064]
build/ARM/gem5.opt(+0x1e78b3d)[0x560ccbec9b3d]
build/ARM/gem5.opt(+0x1ea4de4)[0x560ccbef5de4]
build/ARM/gem5.opt(+0x1ea5632)[0x560ccbef6632]
build/ARM/gem5.opt(+0xd21252)[0x560ccad72252]
build/ARM/gem5.opt(+0x6cde11)[0x560cca71ee11]
/lib/x86_64-linux-gnu/libpython3.8.so.1.0(+0x2a8718)[0x7effdd3cd718]
/lib/x86_64-linux-gnu/libpython3.8.so.1.0(_PyEval_EvalFrameDefault+0x8dd8)[0x7effdd1a2f48]
/lib/x86_64-linux-gnu/libpython3.8.so.1.0(_PyEval_EvalCodeWithName+0x8fb)[0x7effdd2efecb]
/lib/x86_64-linux-gnu/libpython3.8.so.1.0(_PyFunction_Vectorcall+0x94)[0x7effdd3cd0f4]
/lib/x86_64-linux-gnu/libpython3.8.so.1.0(+0x74d6d)[0x7effdd199d6d]
/lib/x86_64-linux-gnu/libpython3.8.so.1.0(_PyEval_EvalFrameDefault+0x7d86)[0x7effdd1a1ef6]
/lib/x86_64-linux-gnu/libpython3.8.so.1.0(_PyEval_EvalCodeWithName+0x8fb)[0x7effdd2efecb]
/lib/x86_64-linux-gnu/libpython3.8.so.1.0(PyEval_EvalCodeEx+0x42)[0x7effdd2f0252]
/lib/x86_64-linux-gnu/libpython3.8.so.1.0(PyEval_EvalCode+0x1f)[0x7effdd2f063f]
/lib/x86_64-linux-gnu/libpython3.8.so.1.0(+0x1cfc81)[0x7effdd2f4c81]
/lib/x86_64-linux-gnu/libpython3.8.so.1.0(+0x25f527)[0x7effdd384527]
/lib/x86_64-linux-gnu/libpython3.8.so.1.0(+0x74d6d)[0x7effdd199d6d]
/lib/x86_64-linux-gnu/libpython3.8.so.1.0(_PyEval_EvalFrameDefault+0x12fd)[0x7effdd19b46d]
/lib/x86_64-linux-gnu/libpython3.8.so.1.0(_PyEval_EvalCodeWithName+0x8fb)[0x7effdd2efecb]
/lib/x86_64-linux-gnu/libpython3.8.so.1.0(_PyFunction_Vectorcall+0x94)[0x7effdd3cd0f4]
/lib/x86_64-linux-gnu/libpython3.8.so.1.0(+0x74d6d)[0x7effdd199d6d]
/lib/x86_64-linux-gnu/libpython3.8.so.1.0(_PyEval_EvalFrameDefault+0x7d86)[0x7effdd1a1ef6]
/lib/x86_64-linux-gnu/libpython3.8.so.1.0(_PyEval_EvalCodeWithName+0x8fb)[0x7effdd2efecb]
/lib/x86_64-linux-gnu/libpython3.8.so.1.0(PyEval_EvalCodeEx+0x42)[0x7effdd2f0252]
/lib/x86_64-linux-gnu/libpython3.8.so.1.0(PyEval_EvalCode+0x1f)[0x7effdd2f063f]
--- END LIBC BACKTRACE ---
Segmentation fault (core dumped)

我正在使用终端命令:build/ARM/gem5.opt configs/tutorial/simple.py 我严格按照他们网站上的教程进行操作,但我遇到了分段错误,有人知道它是由什么造成的,我该如何解决?我已经尝试更新和清除缓存,然后再次构建它,但仍然是同样的错误。我在 oracle VirtualBox 上使用 Ubuntu 20.04。

【问题讨论】:

  • 与您的 'simple.py' 副本相同的结果(=分段错误)。 ( Ubuntu 20.04 安装到 hd 分区,$ free -h → → Mem: 9.7Gi )。 ....... 提示:configs/example/arm/中有 ARM 示例
  • 即使我使用它们,我仍然会得到exeptionstraceback

标签: segmentation-fault gem5


【解决方案1】:

这也是代码的问题。如原文章所述http://www.gem5.org/documentation/learning_gem5/part1/simple_config/

# for gem5 V21 and beyond
system.workload = SEWorkload.init_compatible(binary)

【讨论】:

    猜你喜欢
    • 2023-01-17
    • 2012-09-04
    • 1970-01-01
    • 1970-01-01
    • 2022-11-21
    • 2017-06-04
    • 2022-01-20
    • 1970-01-01
    相关资源
    最近更新 更多