Open
Description
When I checkout the latest version of SOMpp, it passes the test suite, but crashes on the Json
benchmark. The gdb
backtrace looks as follows:
(gdb) run -cp core-lib/Smalltalk/ core-lib/Examples/Benchmarks/Json/Json.som
Starting program: /home/ltratt/SOMpp/SOM++ -cp core-lib/Smalltalk/ core-lib/Examples/Benchmarks/Json/Json.som
This is SOM++
garbage collector: copying
not tagging integers
not caching integers
--------------------------------------
Program received signal SIGSEGV, Segmentation fault.
0x000055555555d77d in VMObject::GetAdditionalSpaceConsumption() const ()
(gdb) bt
#0 0x000055555555d77d in VMObject::GetAdditionalSpaceConsumption() const ()
#1 0x000055555555d7c6 in VMArray::GetNumberOfIndexableFields() const ()
#2 0x000055555555d050 in ClassGenerationContext::SetInstanceFieldsOfSuper(VMArray*) ()
#3 0x00005555555681da in Parser::superclass(ClassGenerationContext*) ()
#4 0x0000555555567c09 in Parser::Classdef(ClassGenerationContext*) ()
#5 0x000055555556c33f in SourcecodeCompiler::compile(VMClass*) ()
#6 0x000055555556bdc6 in SourcecodeCompiler::CompileClass(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, VMClass*) ()
#7 0x0000555555576250 in Universe::LoadClassBasic(VMSymbol*, VMClass*) ()
#8 0x00005555555760f3 in Universe::LoadClass(VMSymbol*) ()
#9 0x000055555558be6e in _System::Load_(Interpreter*, VMFrame*) ()
#10 0x000055555558c8e9 in Routine<_System>::Invoke(Interpreter*, VMFrame*) ()
#11 0x0000555555580d85 in VMPrimitive::Invoke(Interpreter*, VMFrame*) ()
#12 0x000055555556da08 in Interpreter::send(VMSymbol*, VMClass*) ()
#13 0x000055555556e4cf in Interpreter::doSend(long) ()
#14 0x000055555556d1b9 in Interpreter::Start() ()
#15 0x00005555555742d1 in Universe::interpretMethod(VMObject*, VMInvokable*, VMArray*) ()
#16 0x00005555555744d5 in Universe::initialize(long, char**) ()
#17 0x00005555555730fb in Universe::Start(long, char**) ()
--Type <RET> for more, q to quit, c to continue without paging--
#18 0x0000555555585138 in main ()
This is on Debian 4.19.118-2+deb10u1 x86_64 in case that's useful. It might be that I'm doing something stupid in the invocation of the benchmark, but I think this used to work?