Check frame 12 in the output.
jha@MAGICIAN:~/workspace/opensource/riscv-perf-model/build$ gdb --args ./olympia --workload coremark.elf -i 3000 --report-all coremark_report.out
GNU gdb (Ubuntu 15.1-1ubuntu1~24.04.1) 15.1
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./olympia...
(gdb) catch signal SIGABRT
Catchpoint 1 (signal SIGABRT)
(gdb) run
Starting program: /home/jha/workspace/opensource/riscv-perf-model/build/olympia --workload coremark.elf -i 3000 --report-all coremark_report.out
This GDB supports auto-downloading debuginfo from the following URLs:
<https://debuginfod.ubuntu.com>
Enable debuginfod for this session? (y or [n]) y
Debuginfod has been enabled.
To make this setting permanent, add 'set debuginfod enabled on' to .gdbinit.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
registering the backend :pegasus
# Name: Olympia RISC-V Perf Model
# Cmdline: /home/jha/workspace/opensource/riscv-perf-model/build/olympia --workload coremark.elf -i 3000 --report-all coremark_report.out
# Exe: /home/jha/workspace/opensource/riscv-perf-model/build/olympia
# SimulatorVersion: v0.1.0
# Repro: Git SHA: 8caf01a-dirty
# Start: Tuesday Tue Apr 21 13:15:07 2026
# Elapsed: 0.001677s
# Sparta Version: map_v2.2.3
[in] Arch Config: ArchCfg Node "" <- file: "/home/jha/workspace/opensource/riscv-perf-model/arches/small_core.yaml"
Setting up Simulation Content...
Resources:
cpu
Building tree...
Configuring tree...
Finalizing tree...
Inst Allocator: 1238 Inst objects allocated/created
Inst Allocator: 1238 Inst objects allocated/created
Inst Allocator: 0 Inst objects allocated/created
Inst Allocator: 0 Inst objects allocated/created
Inst Allocator: 1238 Inst objects allocated/created
Preparing to run...
Meta-Parameters:
architecture: small_core
is_final_config: false
Non-default model parameters: 9
Running...
olympia: ELF file input detected - running edm
The ilimit was : 2000
[in] Configuration: Parameter "top.extension.sim.inst_limit" <- value: "2000"
[in] Configuration: Parameter "top.extension.sim.workloads" <- value: "[[coremark.elf]]"
[in] Configuration: Parameter "top.core*.params.cosim_mode" <- value: "true"
Building tree...
Configuring tree...
Finalizing tree...
Loading ELF binary: coremark.elf
Found magic memory symbols in ELF
tohost: 0x80001000
fromhost: 0x80001040
Automatically constructing magic memory at 0x80001000
map: [0 , 0x80001000 ) -> "mb_1 " +0x0
map: [0x80001000, 0x80002000 ) -> "Magic Memory" +0x0
map: [0x80002000, 0x8000000000000000) -> "mb_2 " +0x0
-- Loading section (75B) to 0x0
-- Loading section .text.init (450B) to 0x1c2
-- Loading section .tohost (10916B) to 0x32b8
Starting PC: 0x80000000
PegasusExtractorAllocatorWrapper: 636 objects allocated/created
PegasusExtractorAllocatorWrapper: 636 objects allocated/created
PegasusInstAllocatorWrapper: 0 objects allocated/created
PegasusInstAllocatorWrapper: 0 objects allocated/created
PegasusExtractorAllocatorWrapper: 636 objects allocated/created
[Detaching after vfork from child process 43684]
Parameterizing 'cosim-event-pipeline' app, instance 0
Parameterizing 'cherry-pick-fast-checkpointer' app, instance 0
SimDB: Entering createSchemas_ for database: pegasus-cosim.db
SimDB: Completed createSchemas_ in 6 milliseconds.
SimDB: Entering postInit_ for database: pegasus-cosim.db
SimDB: Completed postInit_ in 50 microseconds.
SimDB: Entering initializePipelines_ for database: pegasus-cosim.db
SimDB app pipeline configuration for database 'pegasus-cosim.db':
---- Pipeline: cherry-pick-fast-checkpointer
------ Stage: process_events
------ Stage: write_events
---- Pipeline: cosim-event-pipeline
------ Stage: compress_events
------ Stage: write_events
SimDB: Completed initializePipelines_ in 210 microseconds.
SimDB: Entering openPipelines_ for database: pegasus-cosim.db
[New Thread 0x7ffff6e506c0 (LWP 43686)]
[New Thread 0x7ffff664f6c0 (LWP 43687)]
[New Thread 0x7ffff5e4e6c0 (LWP 43688)]
[New Thread 0x7ffff564d6c0 (LWP 43689)]
SimDB: Completed openPipelines_ in 5 milliseconds.
Booting hartid 0
PegasusState::boot()
MHARTID: 0
MISA: 800000000034112f
MSTATUS: a00000000
SSTATUS: 200000000
Running Complete
Simulation Performance : wall(4.8400), system(0.1800), user(4.4200)
Scheduler Tick Rate (KTPS): 6.73824 (1k ticks per second)
Scheduler Event Rate (KEPS): 100.294 KEPS (1k events per second)
Scheduler Events Fired: 443299
Run Successful!
Saving reports...
[out] Wrote Final Report Report def "@" on node "_global" -> "coremark_report.out" (format=text) (updated 1 times):
1 reports written
Pegasus co-sim finished.
Do not know how but there are 0 events still uncommitted
PegasusExtractorAllocatorWrapper: 1590 objects allocated/created
PegasusExtractorAllocatorWrapper: 1590 objects allocated/created
PegasusInstAllocatorWrapper: 62 objects allocated/created
terminate called without an active exception
Download failed: Invalid argument. Continuing without source file ./nptl/./nptl/pthread_kill.c.
Thread 1 "olympia" hit Catchpoint 1 (signal SIGABRT), __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)
at ./nptl/pthread_kill.c:44
warning: 44 ./nptl/pthread_kill.c: No such file or directory
(gdb) bt
#0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
#1 __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#2 __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3 0x00007ffff76e327e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4 0x00007ffff76c68ff in __GI_abort () at ./stdlib/abort.c:79
#5 0x00007ffff7a6eff5 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00007ffff7a840da in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#7 0x00007ffff7a6ea55 in std::terminate() () from /lib/x86_64-linux-gnu/libstdc++.so.6
#8 0x0000555555a0e747 in std::__terminate () at /usr/include/x86_64-linux-gnu/c++/13/bits/c++config.h:322
#9 std::thread::~thread (this=0x5555582447a0, __in_chrg=<optimized out>) at /usr/include/c++/13/bits/std_thread.h:173
#10 0x0000555555b2a68a in std::default_delete<std::thread>::operator() (this=0x555558253b88, __ptr=0x5555582447a0)
at /usr/include/c++/13/bits/unique_ptr.h:99
#11 0x0000555555ad1f54 in std::unique_ptr<std::thread, std::default_delete<std::thread> >::~unique_ptr (this=<optimized out>, this=<optimized out>)
at /usr/include/c++/13/bits/unique_ptr.h:404
#12 0x0000555555acecd8 in simdb::pipeline::PollingThread::~PollingThread (this=<optimized out>, this=<optimized out>)
at /usr/local/include/simdb/pipeline/PollingThread.hpp:38
#13 0x0000555555b4fb5a in simdb::pipeline::PollingThread::~PollingThread (this=<optimized out>, this=<optimized out>)
at /usr/local/include/simdb/pipeline/PollingThread.hpp:38
#14 0x0000555555b2a9aa in std::default_delete<simdb::pipeline::PollingThread>::operator() (this=0x55555827f6a0, __ptr=0x555558253b60)
at /usr/include/c++/13/bits/unique_ptr.h:99
#15 0x0000555555ac858e in std::unique_ptr<simdb::pipeline::PollingThread, std::default_delete<simdb::pipeline::PollingThread> >::~unique_ptr (
this=<optimized out>, this=<optimized out>) at /usr/include/c++/13/bits/unique_ptr.h:404
#16 0x0000555555b39b70 in std::destroy_at<std::unique_ptr<simdb::pipeline::PollingThread, std::default_delete<simdb::pipeline::PollingThread> > > (
__location=0x55555827f6a0) at /usr/include/c++/13/bits/stl_construct.h:88
#17 0x0000555555b3ee23 in std::_Destroy<std::unique_ptr<simdb::pipeline::PollingThread, std::default_delete<simdb::pipeline::PollingThread> > > (
__pointer=0x55555827f6a0) at /usr/include/c++/13/bits/stl_construct.h:149
#18 0x0000555555b39df6 in std::_Destroy_aux<false>::__destroy<std::unique_ptr<simdb::pipeline::PollingThread, std::default_delete<simdb::pipeline::PollingThread> >*> (__first=0x55555827f6a0, __last=0x55555827f6b8) at /usr/include/c++/13/bits/stl_construct.h:163
#19 0x0000555555b337c5 in std::_Destroy<std::unique_ptr<simdb::pipeline::PollingThread, std::default_delete<simdb::pipeline::PollingThread> >*> (
__first=0x55555827f6a0, __last=0x55555827f6b8) at /usr/include/c++/13/bits/stl_construct.h:196
#20 0x0000555555ac8878 in std::_Destroy<std::unique_ptr<simdb::pipeline::PollingThread, std::default_delete<simdb::pipeline::PollingThread> >*, std::unique_ptr<simdb::pipeline::PollingThread, std::default_delete<simdb::pipeline::PollingThread> > > (__last=0x55555827f6b8, __first=0x55555827f6a0)
at /usr/include/c++/13/bits/alloc_traits.h:948
#21 std::vector<std::unique_ptr<simdb::pipeline::PollingThread, std::default_delete<simdb::pipeline::PollingThread> >, std::allocator<std::unique_ptr<simdb::pipeline::PollingThread, std::default_delete<simdb::pipeline::PollingThread> > > >::~vector (this=<optimized out>, this=<optimized out>)
at /usr/include/c++/13/bits/stl_vector.h:735
#22 0x0000555555ac9936 in simdb::pipeline::PipelineManager::~PipelineManager (this=<optimized out>, this=<optimized out>)
at /usr/local/include/simdb/pipeline/PipelineManager.hpp:26
#23 0x0000555555b2aeea in std::default_delete<simdb::pipeline::PipelineManager>::operator() (this=0x555557b5b080, __ptr=0x55555827c980)
--Type <RET> for more, q to quit, c to continue without paging--
at /usr/include/c++/13/bits/unique_ptr.h:99
#24 0x0000555556433aa6 in std::unique_ptr<simdb::pipeline::PipelineManager, std::default_delete<simdb::pipeline::PipelineManager> >::~unique_ptr (
this=0x555557b5b080, __in_chrg=<optimized out>) at /usr/include/c++/13/bits/unique_ptr.h:404
#25 0x0000555556458f2e in simdb::AppManager::~AppManager (this=0x555557b5afa0, __in_chrg=<optimized out>)
at /home/jha/workspace/packages/map/sparta/./simdb/include/simdb/apps/AppManager.hpp:67
#26 0x000055555646992a in std::_Sp_counted_ptr<simdb::AppManager*, (__gnu_cxx::_Lock_policy)2>::_M_dispose (this=0x555558252a60)
at /usr/include/c++/13/bits/shared_ptr_base.h:428
#27 0x0000555555667d0d in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x555558252a60)
at /usr/include/c++/13/bits/shared_ptr_base.h:346
#28 0x000055555567bf21 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count (this=0x55555827b4a8, __in_chrg=<optimized out>)
at /usr/include/c++/13/bits/shared_ptr_base.h:1071
#29 0x0000555555ac57b6 in std::__shared_ptr<simdb::AppManager, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr (this=<optimized out>, this=<optimized out>)
at /usr/include/c++/13/bits/shared_ptr_base.h:1524
#30 0x0000555555ac57d6 in std::shared_ptr<simdb::AppManager>::~shared_ptr (this=<optimized out>, this=<optimized out>)
at /usr/include/c++/13/bits/shared_ptr.h:175
#31 0x0000555555acbf54 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::shared_ptr<simdb::AppManager> >::~pair (this=<optimized out>, this=<optimized out>) at /usr/include/c++/13/bits/stl_pair.h:187
#32 0x0000555555b44006 in std::destroy_at<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::shared_ptr<simdb::AppManager> > > (__location=0x55555827b480) at /usr/include/c++/13/bits/stl_construct.h:88
#33 0x0000555555b3feb2 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::shared_ptr<simdb::AppManager> > > > >::destroy<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::shared_ptr<simdb::AppManager> > > (__p=0x55555827b480, __a=...) at /usr/include/c++/13/bits/alloc_traits.h:560
#34 std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::shared_ptr<simdb::AppManager> >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::shared_ptr<simdb::AppManager> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::shared_ptr<simdb::AppManager> > > >::_M_destroy_node (this=0x555557d2a9f0, __p=0x55555827b460) at /usr/include/c++/13/bits/stl_tree.h:625
#35 0x0000555555b3bbe5 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::shared_ptr<simdb::AppManager> >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::shared_ptr<simdb::AppManager> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::shared_ptr<simdb::AppManager> > > >::_M_drop_node (this=0x555557d2a9f0, __p=0x55555827b460) at /usr/include/c++/13/bits/stl_tree.h:633
#36 0x0000555555b35aaf in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::shared_ptr<simdb::AppManager> >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::shared_ptr<simdb::AppManager> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::shared_ptr<simdb::AppManager> > > >::_M_erase (this=0x555557d2a9f0, __x=0x55555827b460) at /usr/include/c++/13/bits/stl_tree.h:1938
#37 0x00005555564675ee in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::shared_ptr<simdb::AppManager> >, std::_Select1st<std::pair<std::__cxx11::basic_string<cha--Type <RET> for more, q to quit, c to continue without paging--
r, std::char_traits<char>, std::allocator<char> > const, std::shared_ptr<simdb::AppManager> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::shared_ptr<simdb::AppManager> > > >::~_Rb_tree (this=0x555557d2a9f0, __in_chrg=<optimized out>) at /usr/include/c++/13/bits/stl_tree.h:986
#38 0x000055555646651a in std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::shared_ptr<simdb::AppManager>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::shared_ptr<simdb::AppManager> > > >::~map (this=0x555557d2a9f0, __in_chrg=<optimized out>)
at /usr/include/c++/13/bits/stl_map.h:314
#39 0x000055555646a4e4 in simdb::AppManagers::~AppManagers (this=0x555557d2a9a0, __in_chrg=<optimized out>)
at /home/jha/workspace/packages/map/sparta/./simdb/include/simdb/apps/AppManager.hpp:813
#40 0x000055555646a51f in std::_Destroy<simdb::AppManagers> (__pointer=0x555557d2a9a0) at /usr/include/c++/13/bits/stl_construct.h:151
#41 0x0000555556469806 in std::allocator_traits<std::allocator<void> >::destroy<simdb::AppManagers> (__p=0x555557d2a9a0)
at /usr/include/c++/13/bits/alloc_traits.h:675
#42 std::_Sp_counted_ptr_inplace<simdb::AppManagers, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_dispose (this=0x555557d2a990)
at /usr/include/c++/13/bits/shared_ptr_base.h:613
#43 0x0000555555667d0d in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x555557d2a990)
at /usr/include/c++/13/bits/shared_ptr_base.h:346
#44 0x000055555567bf21 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count (this=0x555557d5db90, __in_chrg=<optimized out>)
at /usr/include/c++/13/bits/shared_ptr_base.h:1071
#45 0x000055555642c10e in std::__shared_ptr<simdb::AppManagers, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr (this=0x555557d5db88, __in_chrg=<optimized out>)
at /usr/include/c++/13/bits/shared_ptr_base.h:1524
#46 0x000055555642c12e in std::shared_ptr<simdb::AppManagers>::~shared_ptr (this=0x555557d5db88, __in_chrg=<optimized out>)
at /usr/include/c++/13/bits/shared_ptr.h:175
#47 0x0000555556400e25 in sparta::app::Simulation::~Simulation (this=0x555557d5d3d0, __in_chrg=<optimized out>)
at /home/jha/workspace/packages/map/sparta/src/Simulation.cpp:372
#48 0x0000555555ae3ace in pegasus::PegasusSim::~PegasusSim (this=<optimized out>, this=<optimized out>)
at /home/jha/workspace/opensource/riscv-perf-model/core/edm/adapters/Pegasus/pegasus/sim/PegasusSim.cpp:26
#49 0x0000555555bcce56 in pegasus::PegasusSim::~PegasusSim (this=<optimized out>, this=<optimized out>)
at /home/jha/workspace/opensource/riscv-perf-model/core/edm/adapters/Pegasus/pegasus/sim/PegasusSim.cpp:26
#50 0x0000555555b2c8ce in std::default_delete<pegasus::PegasusSim>::operator() (this=0x555557ac5e38, __ptr=0x555557d5d3d0)
at /usr/include/c++/13/bits/unique_ptr.h:99
#51 0x0000555555ac8e8c in std::unique_ptr<pegasus::PegasusSim, std::default_delete<pegasus::PegasusSim> >::~unique_ptr (this=<optimized out>,
this=<optimized out>) at /usr/include/c++/13/bits/unique_ptr.h:404
#52 0x0000555555ac732d in pegasus::cosim::PegasusCoSim::~PegasusCoSim (this=<optimized out>, this=<optimized out>)
at /home/jha/workspace/opensource/riscv-perf-model/core/edm/adapters/Pegasus/pegasus/cosim/PegasusCoSim.cpp:187
#53 0x0000555555ac73a6 in pegasus::cosim::PegasusCoSim::~PegasusCoSim (this=<optimized out>, this=<optimized out>)
at /home/jha/workspace/opensource/riscv-perf-model/core/edm/adapters/Pegasus/pegasus/cosim/PegasusCoSim.cpp:187
#54 0x000055555625eae6 in std::default_delete<pegasus::cosim::PegasusCoSim>::operator() (this=0x5555572402c8, __ptr=0x555557ac5e10)
at /usr/include/c++/13/bits/unique_ptr.h:99
#55 0x000055555625dcfa in std::unique_ptr<pegasus::cosim::PegasusCoSim, std::default_delete<pegasus::cosim::PegasusCoSim> >::~unique_ptr (
--Type <RET> for more, q to quit, c to continue without paging--
this=0x5555572402c8, __in_chrg=<optimized out>) at /usr/include/c++/13/bits/unique_ptr.h:404
#56 0x0000555556259f92 in olympia::edm::PegasusAdapter::~PegasusAdapter (this=0x5555572402c0, __in_chrg=<optimized out>)
at /home/jha/workspace/opensource/riscv-perf-model/core/edm/adapters/Pegasus/Pegasus.cpp:44
#57 0x000055555625a04c in olympia::edm::PegasusAdapter::~PegasusAdapter (this=0x5555572402c0, __in_chrg=<optimized out>)
at /home/jha/workspace/opensource/riscv-perf-model/core/edm/adapters/Pegasus/Pegasus.cpp:44
#58 0x0000555555a2944c in std::default_delete<olympia::edm::EDMInterface>::operator() (this=0x555557aaf9b8, __ptr=0x5555572402c0)
at /usr/include/c++/13/bits/unique_ptr.h:99
#59 0x0000555555a208c2 in std::unique_ptr<olympia::edm::EDMInterface, std::default_delete<olympia::edm::EDMInterface> >::~unique_ptr (this=0x555557aaf9b8,
__in_chrg=<optimized out>) at /usr/include/c++/13/bits/unique_ptr.h:404
#60 0x0000555555a27d48 in olympia::EDMInstGenerator::~EDMInstGenerator (this=0x555557aaf990, __in_chrg=<optimized out>)
at /home/jha/workspace/opensource/riscv-perf-model/core/InstGenerator.hpp:98
#61 0x0000555555a27d74 in olympia::EDMInstGenerator::~EDMInstGenerator (this=0x555557aaf990, __in_chrg=<optimized out>)
at /home/jha/workspace/opensource/riscv-perf-model/core/InstGenerator.hpp:98
#62 0x000055555584a3a0 in std::default_delete<olympia::InstGenerator>::operator() (this=0x55555728d938, __ptr=0x555557aaf990)
at /usr/include/c++/13/bits/unique_ptr.h:99
#63 0x0000555555848796 in std::unique_ptr<olympia::InstGenerator, std::default_delete<olympia::InstGenerator> >::~unique_ptr (this=0x55555728d938,
__in_chrg=<optimized out>) at /usr/include/c++/13/bits/unique_ptr.h:404
#64 0x0000555555842abc in olympia::Fetch::~Fetch (this=0x555557289d00, __in_chrg=<optimized out>)
at /home/jha/workspace/opensource/riscv-perf-model/core/fetch/Fetch.cpp:73
#65 0x0000555555842bc0 in olympia::Fetch::~Fetch (this=0x555557289d00, __in_chrg=<optimized out>)
at /home/jha/workspace/opensource/riscv-perf-model/core/fetch/Fetch.cpp:73
#66 0x000055555573fcb3 in sparta::ResourceFactory<olympia::Fetch, olympia::Fetch::FetchParameterSet>::deleteResource (this=0x55555719f590,
res=0x555557289d00) at /usr/local/include/sparta/simulation/ResourceFactory.hpp:291
#67 0x0000555555672072 in sparta::ResourceTreeNode::~ResourceTreeNode (this=0x555557208150, __in_chrg=<optimized out>)
at /usr/local/include/sparta/simulation/ResourceTreeNode.hpp:137
#68 0x00005555556720f0 in sparta::ResourceTreeNode::~ResourceTreeNode (this=0x555557208150, __in_chrg=<optimized out>)
at /usr/local/include/sparta/simulation/ResourceTreeNode.hpp:142
#69 0x00005555556ddd56 in std::default_delete<sparta::ResourceTreeNode>::operator() (this=0x5555571e1828, __ptr=0x555557208150)
at /usr/include/c++/13/bits/unique_ptr.h:99
#70 0x00005555556dd79c in std::unique_ptr<sparta::ResourceTreeNode, std::default_delete<sparta::ResourceTreeNode> >::~unique_ptr (this=0x5555571e1828,
__in_chrg=<optimized out>) at /usr/include/c++/13/bits/unique_ptr.h:404
#71 0x00005555556dcf11 in std::destroy_at<std::unique_ptr<sparta::ResourceTreeNode, std::default_delete<sparta::ResourceTreeNode> > > (
__location=0x5555571e1828) at /usr/include/c++/13/bits/stl_construct.h:88
#72 0x00005555556dd5cb in std::_Destroy<std::unique_ptr<sparta::ResourceTreeNode, std::default_delete<sparta::ResourceTreeNode> > > (
__pointer=0x5555571e1828) at /usr/include/c++/13/bits/stl_construct.h:149
#73 0x00005555556dcc9a in std::_Destroy_aux<false>::__destroy<std::unique_ptr<sparta::ResourceTreeNode, std::default_delete<sparta::ResourceTreeNode> >*> (
__first=0x5555571e1828, __last=0x5555571e18a8) at /usr/include/c++/13/bits/stl_construct.h:163
#74 0x00005555556dc12b in std::_Destroy<std::unique_ptr<sparta::ResourceTreeNode, std::default_delete<sparta::ResourceTreeNode> >*> (
__first=0x5555571e1810, __last=0x5555571e18a8) at /usr/include/c++/13/bits/stl_construct.h:196
--Type <RET> for more, q to quit, c to continue without paging--
#75 0x00005555556db976 in std::_Destroy<std::unique_ptr<sparta::ResourceTreeNode, std::default_delete<sparta::ResourceTreeNode> >*, std::unique_ptr<sparta::ResourceTreeNode, std::default_delete<sparta::ResourceTreeNode> > > (__last=0x5555571e18a8, __first=0x5555571e1810)
at /usr/include/c++/13/bits/alloc_traits.h:948
#76 std::vector<std::unique_ptr<sparta::ResourceTreeNode, std::default_delete<sparta::ResourceTreeNode> >, std::allocator<std::unique_ptr<sparta::ResourceTreeNode, std::default_delete<sparta::ResourceTreeNode> > > >::_M_erase_at_end (this=0x5555571a4248, __pos=0x5555571e1810)
at /usr/include/c++/13/bits/stl_vector.h:1937
#77 0x00005555556d7fa2 in std::vector<std::unique_ptr<sparta::ResourceTreeNode, std::default_delete<sparta::ResourceTreeNode> >, std::allocator<std::unique_ptr<sparta::ResourceTreeNode, std::default_delete<sparta::ResourceTreeNode> > > >::clear (this=0x5555571a4248)
at /usr/include/c++/13/bits/stl_vector.h:1606
#78 0x00005555556d1134 in olympia::CPUFactory::deleteSubtree (this=0x5555571a4200)
at /home/jha/workspace/opensource/riscv-perf-model/core/CPUFactory.cpp:131
#79 0x000055555567209e in sparta::ResourceTreeNode::~ResourceTreeNode (this=0x555557200600, __in_chrg=<optimized out>)
at /usr/local/include/sparta/simulation/ResourceTreeNode.hpp:140
#80 0x00005555556720f0 in sparta::ResourceTreeNode::~ResourceTreeNode (this=0x555557200600, __in_chrg=<optimized out>)
at /usr/local/include/sparta/simulation/ResourceTreeNode.hpp:142
#81 0x000055555568e2b6 in std::default_delete<sparta::TreeNode>::operator() (this=0x7fffffffa090, __ptr=0x555557200600)
at /usr/include/c++/13/bits/unique_ptr.h:99
#82 0x0000555555685894 in std::unique_ptr<sparta::TreeNode, std::default_delete<sparta::TreeNode> >::~unique_ptr (this=0x7fffffffa090,
__in_chrg=<optimized out>) at /usr/include/c++/13/bits/unique_ptr.h:404
#83 0x0000555555663928 in OlympiaSim::~OlympiaSim (this=0x7fffffff98c0, __in_chrg=<optimized out>)
at /home/jha/workspace/opensource/riscv-perf-model/sim/OlympiaSim.cpp:32
#84 0x00005555556b7e39 in main (argc=7, argv=0x7fffffffd848) at /home/jha/workspace/opensource/riscv-perf-model/sim/main.cpp:117
(gdb)
Upon integrating olympia and pegasus, during the teardown process of the sparta tree, the simdb PollingThread class gives SIGABRT . Here is the gdb output :
Check frame 12 in the output.