OpenSmalltalk / opensmalltalk-vm

Cross-platform virtual machine for Squeak, Pharo, Cuis, and Newspeak.
http://opensmalltalk.org/
Other
557 stars 111 forks source link

VM crash (probably wrong forward pointer calculation) #614

Closed unique75m closed 2 years ago

unique75m commented 2 years ago

This I what I get in the VS2022 debugger. Of course, at the moment I do not understand the code there, but maybe hopefully Eliot can see something interesting in it. I leave VS open and look tomorrow at the code, maybe I understand a bit of it :-)

Seems there is something wrong with the forward pointers. I assume the longAt(referent) fails? I guess it is a macro, but VS could not find the definition.

########## Code area - the --> line is failing with access violation ###########

/ begin literalCountOfMethodHeader: / assert((((header) & 7) == 1)); numLiterals = ((header >> 3)) & AlternateHeaderNumLiteralsMask; numSlots = numLiterals + LiteralStart; l9: / end numStrongSlotsOf:format:ephemeronInactiveIf: /; for (i = 0; i < numSlots; i += 1) { referent = longAt((referrer + BaseHeaderSize) + (((sqInt)((usqInt)(i) << (shiftForWord()))))); if ((!(referent & (tagMask())))) {

        /* a forwarding pointer could be because of become: or scavenging. */

--> if ((!((longAt(referent)) & ((classIndexMask()) - (isForwardedObjectClassIndexPun()))))) { / begin followForwarded: / assert(isUnambiguouslyForwarder(referent)); / begin fetchPointer:ofMaybeForwardedObject: / referent1 = longAt((referent + BaseHeaderSize) + (0U << (shiftForWord()))); while (((!(referent1 & (tagMask())))) && ((!((longAt(referent1)) & ((classIndexMask()) - (isForwardedObjectClassIndexPun())))))) { / begin fetchPointer:ofMaybeForwardedObject: / referent1 = longAt((referent1 + BaseHeaderSize) + (0U << (shiftForWord()))); } referent = referent1;

########## Call stack ############

Squeak.exe!scavengeReferentsOf(int64 referrer) Zeile 42680 unter C:\Users\joerg\Persoenlich\Entwicklung\Squeak\vmssource\trunk\src\spur64.cog\cointerp.c (42680) Squeak.exe!scavengeRememberedSetStartingAt(int64 n) Zeile 42760 unter C:\Users\joerg\Persoenlich\Entwicklung\Squeak\vmssource\trunk\src\spur64.cog\cointerp.c (42760) Squeak.exe!scavengeLoop() Zeile 42542 unter C:\Users\joerg\Persoenlich\Entwicklung\Squeak\vmssource\trunk\src\spur64.cog\cointerp.c (42542) Squeak.exe!doScavenge(int64 tenuringCriterion) Zeile 47599 unter C:\Users\joerg\Persoenlich\Entwicklung\Squeak\vmssource\trunk\src\spur64.cog\cointerp.c (47599) Squeak.exe!scavengingGCTenuringIf(int64 tenuringCriterion) Zeile 57959 unter C:\Users\joerg\Persoenlich\Entwicklung\Squeak\vmssource\trunk\src\spur64.cog\cointerp.c (57959) Squeak.exe!sufficientSpaceAfterGC(int64 numBytes) Zeile 58691 unter C:\Users\joerg\Persoenlich\Entwicklung\Squeak\vmssource\trunk\src\spur64.cog\cointerp.c (58691) Squeak.exe!checkForEventsMayContextSwitch(int64 mayContextSwitch) Zeile 62762 unter C:\Users\joerg\Persoenlich\Entwicklung\Squeak\vmssource\trunk\src\spur64.cog\cointerp.c (62762) Squeak.exe!handleStackOverflowOrEventAllowContextSwitch(int64 mayContextSwitch) Zeile 66037 unter C:\Users\joerg\Persoenlich\Entwicklung\Squeak\vmssource\trunk\src\spur64.cog\cointerp.c (66037) Squeak.exe!ceStackOverflow(int64 contextSwitchIfNotNil) Zeile 15593 unter C:\Users\joerg\Persoenlich\Entwicklung\Squeak\vmssource\trunk\src\spur64.cog\cointerp.c (15593) [Externer Code] Squeak.exe!ioInitHeartbeat() Zeile 420 unter C:\Users\joerg\Persoenlich\Entwicklung\Squeak\vmssource\trunk\platforms\win32\vm\sqWin32Heartbeat.c (420) Squeak.exe!interpret() Zeile 2875 unter C:\Users\joerg\Persoenlich\Entwicklung\Squeak\vmssource\trunk\src\spur64.cog\cointerp.c (2875) Squeak.exe!sqMain(int argc, char argv) Zeile 1761 unter C:\Users\joerg\Persoenlich\Entwicklung\Squeak\vmssource\trunk\platforms\win32\vm\sqWin32Main.c (1761) Squeak.exe!WinMain(HINSTANCE * hInst, HINSTANCE hPrevInstance, char lpCmdLine, int nCmdShow) Zeile 1851 unter C:\Users\joerg\Persoenlich\Entwicklung\Squeak\vmssource\trunk\platforms\win32\vm\sqWin32Main.c (1851) [Externer Code]

########## Locals ############

    classFormat 662660168776    __int64
    contextSize 72198296718755736   __int64
    fmt 2   __int64
    foundNewReferentOrIsWeakling    0   __int64
    header  140698790658008 __int64
    header1 140698758633160 __int64
    i   37029628    __int64
    newLocation 811789632   __int64
    numLiterals 64  __int64
    numSlots    167772160   __int64
    numSlots1   255 unsigned __int64
    numSlots2   167772160   unsigned __int64
    objOop1 72057594139401638   __int64
    referent    139599658561184 __int64
    referent1   0   __int64
    referrer    140700938141704 __int64
    sp  72058702004626295   __int64

############## Second try ##################

I needed to restart it again, here are my new local values in debugger

    classFormat 973468582328    __int64
    contextSize 72198310804720808   __int64
    fmt 2   __int64
    foundNewReferentOrIsWeakling    0   __int64
    header  140699864399832 __int64
    header1 140698758633160 __int64
    i   81749860    __int64
    newLocation 2070121416  __int64
    numLiterals 64  __int64
    numSlots    335544320   __int64
    numSlots1   255 unsigned __int64
    numSlots2   335544320   unsigned __int64
    objOop1 72057594296693111   __int64
    referent    139620721982368 __int64
    referent1   0   __int64
    referrer    140711869546504 __int64
    sp  72058702004626295   __int64

numSlots seems to me very wrong. If I do some calculations I get also not the same value that the debugger says me. Here is the code

numLiterals = ((header >> 3)) & AlternateHeaderNumLiteralsMask;
numSlots = numLiterals + LiteralStart;

AlternateHeaderNumLiteralsMask seems to be 0x7fff
LiteralStart seems to be 1

For me is:

numLiterals = ((140699864399832 >> 3)) & 0x7fff = 32763     —> does not match the debugger local, where is the 64 coming from

Seems to me somebody has overridden already the „header“ variable, which seems to be wrong. Could it be that some other thread is writing in the wrong memory area and override my values?

Jörg

########## System Information ##############

Gerätename timemachine Prozessor AMD Ryzen 9 3900X 12-Core Processor 3.80 GHz Installierter RAM 32,0 GB Geräte-ID F6FA897B-DDB1-44D6-9BF3-8BD1110AA754 Produkt-ID 00326-10048-08575-AA867 Systemtyp 64-Bit-Betriebssystem, x64-basierter Prozessor Stift- und Toucheingabe Für diese Anzeige ist keine Stift- oder Toucheingabe verfügbar.

Edition Windows 10 Home Version 20H2 Installiert am ‎23.‎03.‎2021 Betriebssystembuild 19042.1526 Leistung Windows Feature Experience Pack 120.2212.4170.0

Visual Studio 2022 win64x64\squeak.cog.spur VM version ??? I ask Eliot how i can see that on my current local github clone and post it later

############# Code for reproducation ##############

Simply execute the following Smalltalk code. Maybe you need to run it multiple times, for me the crash happens sometimes at the 3rd or 4th try.

| oc | oc := OrderedCollection new. 400000000 timesRepeat: [oc add: Object new]

unique75m commented 2 years ago

Here is the information from the Squeak image, when i run it with my compiled debug VM

Image

C:\Users\joerg\Persoenlich\Entwicklung\Squeak\projects\Finance\Finance.image Squeak5.3 latest update: #19459 Current Change Set: HomeProject Image format 68021 (64 bit)

Virtual Machine

C:\Users\joerg\Persoenlich\Entwicklung\Squeak\vmssource\trunk\building\win64x64\squeak.cog.spur\builddbg\vm\Squeak.exe Open Smalltalk Cog[Spur] VM [CoInterpreterPrimitives VMMaker.oscog-eem.3148] Win32 built on Feb 14 2022 08:47:40 Compiler: Clang 13.0.0 platform sources revision VM: 202202101841 joerg@timemachine:/c/Users/joerg/Persoenlich/Entwicklung/Squeak/vmssource/trunk Date: Thu Feb 10 10:41:46 2022 CommitHash: 5b1e8dc03 Plugins: 202202101841 joerg@timemachine:/c/Users/joerg/Persoenlich/Entwicklung/Squeak/vmssource/trunk CoInterpreter VMMaker.oscog-eem.3148 uuid: 55858401-f9a2-4458-ab45-b576bac43a1c Feb 14 2022 StackToRegisterMappingCogit VMMaker.oscog-eem.3144 uuid: 37de7fbf-c56f-4ea3-bdf1-23cef3bb9631 Feb 14 2022

To Build A Similar Virtual Machine

Visit https://github.com/OpenSmalltalk/opensmalltalk-vm; follow the "Clone or download" instructions, then read the top-level README.md and HowToBuild files in the top-level build directory for your platform(s), build.macos64x64/HowToBuild, build.win32x86/HowToBuild, etc.

unique75m commented 2 years ago

Here is a crash dump, i think it has to do with that problem

Segmentation fault Tue Feb 22 18:54:56 2022

VM: 202003021730 https://github.com/OpenSmalltalk/opensmalltalk-vm.git Date: Mon Mar 2 18:30:55 2020 CommitHash: 6a0bc96 Plugins: 202003021730 https://github.com/OpenSmalltalk/opensmalltalk-vm.git

C stack backtrace & registers: rax 0x1f00000002000033 rbx 0x000000010c5d0d78 rcx 0x000000000000001f rdx 0x00030315138c38e0 rdi 0x0000000000000069 rsi 0x000000000000000d rbp 0x00007ff7b3a3e0a8 rsp 0x00007ff7b3a3e078 r8 0x00000001138c38e0 r9 0x0000000000000002 r10 0x0000000113011258 r11 0x00000001156a9548 r12 0x0000000113084e40 r13 0x0000000112fb6280 r14 0x0000000000000000 r15 0x0000000008800029 rip 0x0000000112fb63f2 0 ??? 0x0000000112fb63f2 0x0 + 4613432306 1 Squeak 0x000000010c53b880 reportStackState + 818 2 Squeak 0x000000010c53bbbf sigsegv + 174 3 libsystem_platform.dylib 0x00007ff81ec41e2d _sigtramp + 29 4 ??? 0x0000000113e4abd8 0x0 + 4628720600

Smalltalk stack dump: 0x7ff7b3a3e0a8 M IdentityDictionary(Dictionary)>associationsDo: 0x113084e40: a(n) IdentityDictionary 0x7ff7b3a3e0e0 M IdentityDictionary(Dictionary)>keysDo: 0x113084e40: a(n) IdentityDictionary 0x7ff7b3a3e118 M [] in IdentityDictionary(Dictionary)>keys 0x113084e40: a(n) IdentityDictionary 0x7ff7b3a3e160 M Array class(SequenceableCollection class)>new:streamContents: 0x113c7b2c0: a(n) Array class 0x7ff7b3a3e1a0 M IdentityDictionary(Dictionary)>keys 0x113084e40: a(n) IdentityDictionary 0x7ff7b3a3e1e0 I IdentityDictionary(Dictionary)>keysSortedSafely 0x113084e40: a(n) IdentityDictionary 0x7ff7b3a3e220 I IdentityDictionary(Dictionary)>keysInOrder 0x113084e40: a(n) IdentityDictionary 0x7ff7b3a37b50 I IdentityDictionary(Dictionary)>printElementsOn: 0x113084e40: a(n) IdentityDictionary 0x7ff7b3a37b98 I IdentityDictionary(Collection)>printOn: 0x113084e40: a(n) IdentityDictionary 0x7ff7b3a37bd0 M [] in IdentityDictionary(Object)>printStringLimitedTo: 0x113084e40: a(n) IdentityDictionary 0x7ff7b3a37c10 M String class(SequenceableCollection class)>streamContents:limitedTo: 0x113c7b9e0: a(n) String class 0x7ff7b3a37c58 M IdentityDictionary(Object)>printStringLimitedTo: 0x113084e40: a(n) IdentityDictionary 0x7ff7b3a37c90 M [] in Context>printDetails: 0x113712fa8: a(n) Context 0x7ff7b3a37cc8 M BlockClosure>on:do: 0x113713118: a(n) BlockClosure 0x7ff7b3a37d08 M BlockClosure>ifError: 0x113713118: a(n) BlockClosure 0x7ff7b3a37d60 M Context>printDetails: 0x113712fa8: a(n) Context 0x7ff7b3a37dc0 I Context>errorReportOn: 0x1136af398: a(n) Context 0x7ff7b3a37e10 I SmalltalkImage>logError:inContext:to: 0x113cc22a8: a(n) SmalltalkImage 0x7ff7b3a37e68 I SmalltalkImage>logSqueakError:inContext: 0x113cc22a8: a(n) SmalltalkImage 0x7ff7b3a37eb8 M [] in Debugger class>openOn:context:label:contents:fullView: 0x11451c2b0: a(n) Debugger class 0x7ff7b3a37ef0 M BlockClosure>on:do: 0x1136b06d0: a(n) BlockClosure 0x7ff7b3a37f38 M Debugger class>openOn:context:label:contents:fullView: 0x11451c2b0: a(n) Debugger class 0x7ff7b3a37fa0 I StandardToolSet class>debugProcess:context:label:contents:fullView: 0x113c90490: a(n) StandardToolSet class 0x7ff7b3a38010 I ToolSet class>debugProcess:context:label:contents:fullView: 0x113c88df8: a(n) ToolSet class 0x7ff7b3a38080 I Process>debug:title:full:contents: 0x116ee38a8: a(n) Process 0x7ff7b3a380e0 I Process>debug:title:full: 0x116ee38a8: a(n) Process 0x7ff7b3a38138 I Process>debug:title: 0x116ee38a8: a(n) Process 0x7ff7b3a38188 I StandardToolSet class>handleError: 0x113c90490: a(n) StandardToolSet class 0x7ff7b3a381e0 I ToolSet class>handleError: 0x113c88df8: a(n) ToolSet class 0x7ff7b3a38220 M UnhandledError>defaultAction 0x1136af450: a(n) UnhandledError 0x7ff7b3a38b58 M UndefinedObject>handleSignal: 0x1138c38e0: a(n) UndefinedObject 0x7ff7b3a38b90 M UnhandledError(Exception)>signal 0x1136af450: a(n) UnhandledError 0x7ff7b3a38bd0 I UnhandledError class>signalForException: 0x113c8a8c0: a(n) UnhandledError class 0x7ff7b3a38c18 I MessageNotUnderstood(Error)>defaultAction 0x1136af298: a(n) MessageNotUnderstood 0x7ff7b3a38c48 M MessageNotUnderstood>defaultAction 0x1136af298: a(n) MessageNotUnderstood 0x7ff7b3a38c80 M UndefinedObject>handleSignal: 0x1138c38e0: a(n) UndefinedObject 0x7ff7b3a38cb8 M MessageNotUnderstood(Exception)>signal 0x1136af298: a(n) MessageNotUnderstood 0x7ff7b3a38cf8 M SmallInteger(Object)>doesNotUnderstand: key 0x9a31078fb9e8bccb=$1388833758697559961 ($ô) 0x7ff7b3a38d50 M IdentityDictionary>scanFor: 0x113084e40: a(n) IdentityDictionary 0x7ff7b3a38d90 M IdentityDictionary(Dictionary)>at:ifAbsent: 0x113084e40: a(n) IdentityDictionary 0x7ff7b3a38dd0 M MorphExtension>valueOfProperty:ifAbsent: 0x113045828: a(n) MorphExtension 0x7ff7b3a38e10 M PluggableTextMorphPlus(Morph)>valueOfProperty:ifAbsent: 0x11c1881e8: a(n) PluggableTextMorphPlus 0x7ff7b3a38e50 M PluggableTextMorphPlus(Morph)>clipSubmorphs 0x11c1881e8: a(n) PluggableTextMorphPlus 0x7ff7b3a38e88 M PluggableTextMorphPlus(Morph)>invalidRect:from: 0x11c1881e8: a(n) PluggableTextMorphPlus 0x7ff7b3a38ed0 M TransformMorph(Morph)>invalidRect:from: 0x1130459d0: a(n) TransformMorph 0x7ff7b3a38f10 M TransformMorph>invalidRect:from: 0x1130459d0: a(n) TransformMorph 0x7ff7b3a38f58 M TextMorphForEditView(Morph)>invalidRect:from: 0x113045b48: a(n) TextMorphForEditView 0x7ff7b3a38f98 M TextMorphForEditView(Morph)>invalidRect: 0x113045b48: a(n) TextMorphForEditView 0x7ff7b3a38fd0 M TextMorphForEditView(Morph)>changed 0x113045b48: a(n) TextMorphForEditView 0x7ff7b3a39028 M TextMorphForEditView(TextMorph)>fit 0x113045b48: a(n) TextMorphForEditView 0x7ff7b3a39080 M TextMorphForEditView(TextMorph)>updateFromParagraph 0x113045b48: a(n) TextMorphForEditView 0x7ff7b3a390c0 I PluggableTextMorphPlus>stylerStyled: 0x11c1881e8: a(n) PluggableTextMorphPlus 0x7ff7b3a39100 M SHTextStylerST80(SHTextStyler)>style: 0x113045c20: a(n) SHTextStylerST80 0x7ff7b3a39138 M PluggableTextMorphPlus>updateStyleNow 0x11c1881e8: a(n) PluggableTextMorphPlus 0x7ff7b3a39168 M PluggableTextMorphPlus>setText: 0x11c1881e8: a(n) PluggableTextMorphPlus 0x7ff7b3a391a0 M PluggableTextMorphPlus(PluggableTextMorph)>update: 0x11c1881e8: a(n) PluggableTextMorphPlus 0x7ff7b3a391d8 M PluggableTextMorphPlus>update: 0x11c1881e8: a(n) PluggableTextMorphPlus 0x7ff7b3a39218 M [] in ContextVariablesInspector(Object)>changed: 0x11c113b00: a(n) ContextVariablesInspector 0x7ff7b3a46d60 M DependentsArray>do: 0x11c17f650: a(n) DependentsArray 0x7ff7b3a46d98 M ContextVariablesInspector(Object)>changed: 0x11c113b00: a(n) ContextVariablesInspector 0x7ff7b3a46e00 I ContextVariablesInspector(Inspector)>object: 0x11c113b00: a(n) ContextVariablesInspector 0x7ff7b3a46e58 I MorphicDebugger(Debugger)>contextStackIndex:oldContextWas: 0x117088c70: a(n) MorphicDebugger 0x7ff7b3a46ea8 I MorphicDebugger(Debugger)>toggleContextStackIndex: 0x117088c70: a(n) MorphicDebugger 0x7ff7b3a46ef0 I PluggableListMorphPlus(PluggableListMorph)>changeModelSelection: 0x11c1887e0: a(n) PluggableListMorphPlus 0x7ff7b3a46f40 I PluggableListMorphPlus(PluggableListMorph)>mouseUp: 0x11c1887e0: a(n) PluggableListMorphPlus 0x7ff7b3a46f88 I PluggableListMorphPlus(Morph)>handleMouseUp: 0x11c1887e0: a(n) PluggableListMorphPlus 0x7ff7b3a46fc0 M MouseButtonEvent>sentTo: 0x11367feb0: a(n) MouseButtonEvent 0x7ff7b3a47000 M PluggableListMorphPlus(Morph)>handleEvent: 0x11c1887e0: a(n) PluggableListMorphPlus 0x7ff7b3a47038 M PluggableListMorphPlus(Morph)>handleFocusEvent: 0x11c1887e0: a(n) PluggableListMorphPlus 0x7ff7b3a47080 M MorphicEventDispatcher>doHandlingForFocusEvent:with: 0x11367f608: a(n) MorphicEventDispatcher 0x7ff7b3a470c8 M MorphicEventDispatcher>dispatchFocusEvent:with: 0x11367f608: a(n) MorphicEventDispatcher 0x7ff7b3a47108 M PluggableListMorphPlus(Morph)>processFocusEvent:using: 0x11c1887e0: a(n) PluggableListMorphPlus 0x7ff7b3a47148 M PluggableListMorphPlus(Morph)>processFocusEvent: 0x11c1887e0: a(n) PluggableListMorphPlus 0x7ff7b3a47198 M [] in HandMorph>sendFocusEvent:to:clear: 0x114014718: a(n) HandMorph 0x7ff7b3a471d8 M BlockClosure>ensure: 0x11367f4f0: a(n) BlockClosure 0x7ff7b3a47218 M MouseButtonEvent(MorphicEvent)>becomeActiveDuring: 0x11367edc0: a(n) MouseButtonEvent 0x7ff7b3a47d78 M [] in HandMorph>sendFocusEvent:to:clear: 0x114014718: a(n) HandMorph 0x7ff7b3a47db8 M BlockClosure>ensure: 0x11367f320: a(n) BlockClosure 0x7ff7b3a47df8 M HandMorph>becomeActiveDuring: 0x114014718: a(n) HandMorph 0x7ff7b3a47e48 M [] in HandMorph>sendFocusEvent:to:clear: 0x114014718: a(n) HandMorph 0x7ff7b3a47e88 M BlockClosure>ensure: 0x11367f150: a(n) BlockClosure 0x7ff7b3a47ec8 M PasteUpMorph>becomeActiveDuring: 0x113d6eb08: a(n) PasteUpMorph 0x7ff7b3a47f10 M HandMorph>sendFocusEvent:to:clear: 0x114014718: a(n) HandMorph 0x7ff7b3a47f68 M HandMorph>sendEvent:focus:clear: 0x114014718: a(n) HandMorph 0x7ff7b3a47fb0 M HandMorph>sendMouseEvent: 0x114014718: a(n) HandMorph 0x7ff7b3a47ff0 M HandMorph>handleEvent: 0x114014718: a(n) HandMorph 0x7ff7b3a48048 M HandMorph>processEvents 0x114014718: a(n) HandMorph 0x7ff7b3a48080 M [] in WorldState>doOneCycleNowFor: 0x113f50658: a(n) WorldState 0x7ff7b3a480c8 M Array(SequenceableCollection)>do: 0x1138e8660: a(n) Array 0x7ff7b3a48100 M WorldState>handsDo: 0x113f50658: a(n) WorldState 0x7ff7b3a48140 M WorldState>doOneCycleNowFor: 0x113f50658: a(n) WorldState 0x7ff7b3a48178 M WorldState>doOneCycleFor: 0x113f50658: a(n) WorldState 0x7ff7b3a481b0 M PasteUpMorph>doOneCycle 0x113d6eb08: a(n) PasteUpMorph 0x7ff7b3a481e0 M [] in MorphicProject>spawnNewProcess 0x11412df68: a(n) MorphicProject 0x7ff7b3a48220 I [] in BlockClosure>newProcess 0x116f77948: a(n) BlockClosure

Most recent primitives hashWithInitialHash: hashWithInitialHash: hashWithInitialHash: hashWithInitialHash: hashWithInitialHash: compare:with:collated: hashWithInitialHash: compare:with:collated: hashWithInitialHash: hashWithInitialHash: hashWithInitialHash: compare:with:collated: hashWithInitialHash: compare:with:collated: hashWithInitialHash: compare:with:collated: shallowCopy StackOverflow hashWithInitialHash: hashWithInitialHash: hashWithInitialHash: compare:with:collated: hashWithInitialHash: compare:with:collated: shallowCopy hashWithInitialHash: StackOverflow hashWithInitialHash: hashWithInitialHash: compare:with:collated: hashWithInitialHash: compare:with:collated: hashWithInitialHash: compare:with:collated: hashWithInitialHash: hashWithInitialHash: basicNew hashWithInitialHash: compare:with:collated: hashWithInitialHash: compare:with:collated: basicNew basicNew replaceFrom:to:with:startingAt: at:put: at:put: value StackOverflow add: analyseTempsWithin:rootNode:assignmentPools: StackOverflow shallowCopy basicNew shallowCopy <= value: value: value:value: do: anySatisfy: identityHash value:value: value:value: value:value: value:value: perform:withArguments: specialObjectsArray genSendSpecial:numArgs: specialObjectsArray perform:withArguments: perform:withArguments: perform:withArguments: perform:withArguments: genPop sizeCodeForValue: perform:withArguments: genSend:numArgs: perform:withArguments: genPushTemp: perform:withArguments: perform:withArguments: perform:withArguments: perform:withArguments: perform:withArguments: perform:withArguments: hashWithInitialHash: asSetElement perform:with:with: perform:withArguments: genPushTemp: perform:withArguments: perform:withArguments: perform:withArguments: perform:withArguments: perform:withArguments: perform:withArguments: perform:withArguments: perform:withArguments: primitive primitive , hashMultiply bitXor: hashMultiply bitXor: enclosedSetElement value: hashWithInitialHash: identityHash size hashWithInitialHash: compare:with:collated: compare:with:collated: perform: size size newMethod:header: size at: at:put: at:put: objectAt:put: objectAt:put: objectAt:put: objectAt:put: objectAt:put: objectAt:put: objectAt:put: objectAt:put: objectAt:put: basicNew size basicNew at:put: specialObjectsArray specialObjectsArray at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: emitCodeForValue:encoder: perform:with:with:with: at: at: at:put: at:put: at:put: at:put: at:put: at:put: emitCodeForValue:encoder: at:put: at:put: at:put: ~= ~= size size size objectAt: objectAt:put: objectAt:put: at: value:value: at: value:value: at: value:value: value:value: value:value: value:value: value:value: value withIndexDo: withIndexDo: withIndexDo: space size size basicNew tempAt: tempAt: findFirstInString:inSet:startingAt: primWrite:from:startingAt:count: primWrite:from:startingAt:count: primWrite:from:startingAt:count: findFirstInString:inSet:startingAt: primWrite:from:startingAt:count: primWrite:from:startingAt:count: primGetPosition: shallowCopy primGetPosition: basicNew StackOverflow StackOverflow findNextHandlerContextStarting tempAt: tempAt: tempAt:put: tempAt: tempAt:put: findNextUnwindContextUpTo: terminateTo: findFirstInString:inSet:startingAt: primWrite:from:startingAt:count: primWrite:from:startingAt:count: objectClass: primWrite:from:startingAt:count: primWrite:from:startingAt:count: primWrite:from:startingAt:count: primWrite:from:startingAt:count: primWrite:from:startingAt:count: primWrite:from:startingAt:count: primWrite:from:startingAt:count: primWrite:from:startingAt:count: primWrite:from:startingAt:count: primWrite:from:startingAt:count: primWrite:from:startingAt:count: primWrite:from:startingAt:count: primWrite:from:startingAt:count: primWrite:from:startingAt:count: primWrite:from:startingAt:count: primWrite:from:startingAt:count: primWrite:from:startingAt:count: primWrite:from:startingAt:count: findFirstInString:inSet:startingAt: primWrite:from:startingAt:count: primWrite:from:startingAt:count: primWrite:from:startingAt:count: primWrite:from:startingAt:count: primWrite:from:startingAt:count: primWrite:from:startingAt:count: primWrite:from:startingAt:count: primWrite:from:startingAt:count: primWrite:from:startingAt:count: primWrite:from:startingAt:count: primWrite:from:startingAt:count: findFirstInString:inSet:startingAt: primWrite:from:startingAt:count: StackOverflow asInteger at: value: indexOfAscii:inString:startingAt: StackOverflow

stack page bytes 4096 available headroom 1480 minimum unused headroom 0

(Segmentation fault)
unique75m commented 2 years ago

Eliot told me that the virtual machine does everything right and there is no low-space action triggered in image, so that my workspace code is not interrupted and the systems runs out of memory.

I created the issue https://github.com/squeak-smalltalk/squeak-object-memory/issues/67 on image side.