primitiveFailForOSError: causes assertion failure in the simulator

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

primitiveFailForOSError: causes assertion failure in the simulator

alistairgrant
 
Hi Eliot,

Calling #primitiveFailForOSError: fails in the simulator (I guess I'm
the first person to use it :-)).  It works properly in a real VM, of
course.

I've included a stack dump below, but my guess is that PrimitiveError
isn't a known class, so isn't guaranteed to be in classTableFirstPage,
causing the assertion failure below.

Am I on the right track here?

Thanks,
Alistair



22 October 2018 10:38:54.659355 pm

VM: unix - Smalltalk
Image: Squeak5.3alpha [latest update: #18235]
- but with VMMaker.oscog-eem.2467


SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /home/alistair/vmmaker/opensmalltalk-vm/cogsim64.01
Trusted Dir /home/alistair/vmmaker/opensmalltalk-vm/cogsim64.01/secure
Untrusted Dir /home/alistair/vmmaker/opensmalltalk-vm/cogsim64.01/My Squeak

Spur32BitMMLESimulator(Object)>>assert:
        Receiver: a Spur32BitMMLESimulator
        Arguments and temporary variables:
                aBlock: false
        Receiver's instance variables:
                coInterpreter: a StackInterpreterSimulatorLSB
                scavenger: a SpurGenerationScavengerSimulator
                segmentManager: a SpurSegmentManager
                compactor: a SpurPlanningCompactorSimulator
                memory: a LittleEndianBitmap of length 21757952
                freeStart: 4625696
                freeOldSpaceStart: 87031792
                scavengeThreshold: 12358406
                newSpaceStart: 0
                newSpaceLimit: 12606720
                edenBytes: 12499584
                oldSpaceStart: 12606720
                nilObj: 12606720
                falseObj: 12606736
                trueObj: 12606752
                specialObjectsOop: 23174176
                hiddenRootsObj: 12606912
                classTableFirstPage: 12623344
                classTableIndex: 17408
                numClassTablePages: 18
                endOfMemory: 87031792
                mournQueue: 12606720
                unscannedEphemerons: a SpurContiguousObjStack
                objStackInvalidBecause: nil
                invalidObjStackPage: nil
                markStack: 13057112
                weaklingStack: 37336504
                freeLists: a CArray
                freeListsMask: 1
                lastHash: 769693211
                signalLowSpace: false
                checkForLeaks: 0
                needGCFlag: false
                heapMap: a CogCheck32BitHeapMap
                becomeEffectsFlags: 0
                pastSpaceStart: 827400
                heapGrowthToSizeGCRatio: 0.333333
                heapSizeAtPreviousGC: 39739264
                oldSpaceUsePriorToScavenge: 44935520
                growHeadroom: 16777216
                shrinkThreshold: 33554432
                marking: false
                remapBuffer: #(4371160 nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...etc...
                remapBufferCount: 0
                extraRootCount: 0
                extraRoots: nil
                lowSpaceThreshold: 400000
                totalFreeOldSpace: 28440960
                maxOldSpaceSize: 0
                gcPhaseInProgress: 0
                gcStartUsecs: 3717692948277871
                gcMarkEndUsecs: nil
                gcSweepEndUsecs: 0
                compactionStartUsecs: nil
                bogon: nil
                statCoalesces: 0
                statCompactPassCount: 0
                statFGCDeltaUsecs: 0
                statFullGCUsecs: 0
                statCompactionUsecs: 0
                statSweepUsecs: 0
                statMarkUsecs: 0
                statFullGCs: 0
                statGCEndUsecs: 3717692948277871
                statGrowMemory: 1
                statIGCDeltaUsecs: 0
                statIncrGCUsecs: 0
                statIncrGCs: 0
                statMarkCount: 0
                statRootTableCount: 68
                statRootTableOverflows: 0
                statSGCDeltaUsecs: 0
                statScavengeGCUsecs: 0
                statScavenges: 2
                statShrinkMemory: 0
                statAllocatedBytes: 14795960
                statMaxAllocSegmentTime: 0
                parent: nil
                bootstrapping: false

Spur32BitMMLESimulator(SpurMemoryManager)>>knownClassAtIndex:
        Receiver: a Spur32BitMMLESimulator
        Arguments and temporary variables:
                classIndex: 4221
        Receiver's instance variables:
                coInterpreter: a StackInterpreterSimulatorLSB
                scavenger: a SpurGenerationScavengerSimulator
                segmentManager: a SpurSegmentManager
                compactor: a SpurPlanningCompactorSimulator
                memory: a LittleEndianBitmap of length 21757952
                freeStart: 4625696
                freeOldSpaceStart: 87031792
                scavengeThreshold: 12358406
                newSpaceStart: 0
                newSpaceLimit: 12606720
                edenBytes: 12499584
                oldSpaceStart: 12606720
                nilObj: 12606720
                falseObj: 12606736
                trueObj: 12606752
                specialObjectsOop: 23174176
                hiddenRootsObj: 12606912
                classTableFirstPage: 12623344
                classTableIndex: 17408
                numClassTablePages: 18
                endOfMemory: 87031792
                mournQueue: 12606720
                unscannedEphemerons: a SpurContiguousObjStack
                objStackInvalidBecause: nil
                invalidObjStackPage: nil
                markStack: 13057112
                weaklingStack: 37336504
                freeLists: a CArray
                freeListsMask: 1
                lastHash: 769693211
                signalLowSpace: false
                checkForLeaks: 0
                needGCFlag: false
                heapMap: a CogCheck32BitHeapMap
                becomeEffectsFlags: 0
                pastSpaceStart: 827400
                heapGrowthToSizeGCRatio: 0.333333
                heapSizeAtPreviousGC: 39739264
                oldSpaceUsePriorToScavenge: 44935520
                growHeadroom: 16777216
                shrinkThreshold: 33554432
                marking: false
                remapBuffer: #(4371160 nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...etc...
                remapBufferCount: 0
                extraRootCount: 0
                extraRoots: nil
                lowSpaceThreshold: 400000
                totalFreeOldSpace: 28440960
                maxOldSpaceSize: 0
                gcPhaseInProgress: 0
                gcStartUsecs: 3717692948277871
                gcMarkEndUsecs: nil
                gcSweepEndUsecs: 0
                compactionStartUsecs: nil
                bogon: nil
                statCoalesces: 0
                statCompactPassCount: 0
                statFGCDeltaUsecs: 0
                statFullGCUsecs: 0
                statCompactionUsecs: 0
                statSweepUsecs: 0
                statMarkUsecs: 0
                statFullGCs: 0
                statGCEndUsecs: 3717692948277871
                statGrowMemory: 1
                statIGCDeltaUsecs: 0
                statIncrGCUsecs: 0
                statIncrGCs: 0
                statMarkCount: 0
                statRootTableCount: 68
                statRootTableOverflows: 0
                statSGCDeltaUsecs: 0
                statScavengeGCUsecs: 0
                statScavenges: 2
                statShrinkMemory: 0
                statAllocatedBytes: 14795960
                statMaxAllocSegmentTime: 0
                parent: nil
                bootstrapping: false

Spur32BitMMLESimulator(SpurMemoryManager)>>eeInstantiateSmallClassIndex:format:numSlots:
        Receiver: a Spur32BitMMLESimulator
        Arguments and temporary variables:
                knownClassIndex: 4221
                objFormat: 1
                numSlots: 2
        Receiver's instance variables:
                coInterpreter: a StackInterpreterSimulatorLSB
                scavenger: a SpurGenerationScavengerSimulator
                segmentManager: a SpurSegmentManager
                compactor: a SpurPlanningCompactorSimulator
                memory: a LittleEndianBitmap of length 21757952
                freeStart: 4625696
                freeOldSpaceStart: 87031792
                scavengeThreshold: 12358406
                newSpaceStart: 0
                newSpaceLimit: 12606720
                edenBytes: 12499584
                oldSpaceStart: 12606720
                nilObj: 12606720
                falseObj: 12606736
                trueObj: 12606752
                specialObjectsOop: 23174176
                hiddenRootsObj: 12606912
                classTableFirstPage: 12623344
                classTableIndex: 17408
                numClassTablePages: 18
                endOfMemory: 87031792
                mournQueue: 12606720
                unscannedEphemerons: a SpurContiguousObjStack
                objStackInvalidBecause: nil
                invalidObjStackPage: nil
                markStack: 13057112
                weaklingStack: 37336504
                freeLists: a CArray
                freeListsMask: 1
                lastHash: 769693211
                signalLowSpace: false
                checkForLeaks: 0
                needGCFlag: false
                heapMap: a CogCheck32BitHeapMap
                becomeEffectsFlags: 0
                pastSpaceStart: 827400
                heapGrowthToSizeGCRatio: 0.333333
                heapSizeAtPreviousGC: 39739264
                oldSpaceUsePriorToScavenge: 44935520
                growHeadroom: 16777216
                shrinkThreshold: 33554432
                marking: false
                remapBuffer: #(4371160 nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...etc...
                remapBufferCount: 0
                extraRootCount: 0
                extraRoots: nil
                lowSpaceThreshold: 400000
                totalFreeOldSpace: 28440960
                maxOldSpaceSize: 0
                gcPhaseInProgress: 0
                gcStartUsecs: 3717692948277871
                gcMarkEndUsecs: nil
                gcSweepEndUsecs: 0
                compactionStartUsecs: nil
                bogon: nil
                statCoalesces: 0
                statCompactPassCount: 0
                statFGCDeltaUsecs: 0
                statFullGCUsecs: 0
                statCompactionUsecs: 0
                statSweepUsecs: 0
                statMarkUsecs: 0
                statFullGCs: 0
                statGCEndUsecs: 3717692948277871
                statGrowMemory: 1
                statIGCDeltaUsecs: 0
                statIncrGCUsecs: 0
                statIncrGCs: 0
                statMarkCount: 0
                statRootTableCount: 68
                statRootTableOverflows: 0
                statSGCDeltaUsecs: 0
                statScavengeGCUsecs: 0
                statScavenges: 2
                statShrinkMemory: 0
                statAllocatedBytes: 14795960
                statMaxAllocSegmentTime: 0
                parent: nil
                bootstrapping: false

StackInterpreterSimulatorLSB(StackInterpreter)>>cloneOSErrorObj:numSlots:
        Receiver: a StackInterpreterSimulatorLSB
        Arguments and temporary variables:
                errObj: 13056176
                numSlots: 2
                clone: nil
                i: nil
                iLimiT: nil
        Receiver's instance variables:
                objectMemory: a Spur32BitMMLESimulator
                messageSelector: 12933368
                argumentCount: 1
                newMethod: 15369696
                primFailCode: 21
                osErrorCode: -12
                exceptionPC: 0
                inFFIFlags: 0
                profileMethod: 12606720
                profileProcess: 12606720
                profileSemaphore: 12606720
                nextProfileTick: 0
                preemptionYields: true
                newFinalization: false
                sHEAFn: 77
                ffiExceptionResponse: 0
                currentBytecode: 225
                bytecodeSetSelector: 0
                localFP: -8736
                localIP: 15369730
                localSP: -8756
                stackLimit: -9216
                stackPage: a CogStackPage@-8192 -8200<->-8300 trace 1
                stackPages: an InterpreterStackPagesLSB
                method: 15369696
                instructionPointer: 30968663
                stackPointer: -8728
                framePointer: -8704
                localReturnValue: 4595456
                localAbsentReceiver: nil
                localAbsentReceiverOrZero: nil
                extA: nil
                extB: nil
                numExtB: nil
                primitiveFunctionPointer: #primitiveClosedir
                methodCache: #(17682552 6174 17814224 0 30886936 14087 30968808 0 12821552 7438...etc...
                nsMethodCache: #(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ni...etc...
                atCache: #(302368 9 4 0 0 0 0 0 4604296 2 2 0 0 0 0 0 48530384 7 2 0 0 0 0 0 15...etc...
                lkupClassTag: 3758
                lkupClass: 30787408
                methodDictLinearSearchLimit: 8
                highestRunnableProcessPriority: 40
                reenterInterpreter: ReenterInterpreter:
                nextWakeupUsecs: 3717692948323621
                nextPollUsecs: 3717692948311418
                inIOProcessEvents: 0
                interruptKeycode: 2094
                interruptPending: false
                savedWindowSize: 63963801
                imageHeaderFlags: 2
                fullScreenFlag: 0
                deferDisplayUpdates: false
                pendingFinalizationSignals: 0
                extraVMMemory: 0
                interpreterProxy: a StackInterpreterSimulatorLSB
                showSurfaceFn: nil
                primitiveTable: #(0 #primitiveAdd #primitiveSubtract #primitiveLessThan #primitiveGreaterThan...etc...
                primitiveAccessorDepthTable: #(-1 -1 0 0 0 0 0 0 0 0 -1 -1 0 -1 -1 0 0 0 -1 0 0...etc...
                externalPrimitiveTable: a CArrayAccessor on: #(104 94 97 106 120 116 111 118 14...etc...
                externalPrimitiveTableFirstFreeIndex: 61
                overflowedPage: a CogStackPage@-6144 -6156<->-7024 trace 1
                extraFramesToMoveOnOverflow: 3
                globalSessionID: 4246484935
                jmpBuf: nil
                jmpDepth: 0
                suspendedCallbacks: nil
                suspendedMethods: nil
                numStackPages: 8
                desiredNumStackPages: 8
                desiredEdenBytes: 12499584
                classNameIndex: 6
                thisClassIndex: 5
                metaclassNumSlots: 6
                interruptCheckChain: nil
                suppressHeartbeatFlag: false
                breakSelector: nil
                breakSelectorLength: -1073741824
                breakLookupClassTag: nil
                longRunningPrimitiveCheckMethod: nil
                longRunningPrimitiveCheckSemaphore: nil
                longRunningPrimitiveStartUsecs: 0
                longRunningPrimitiveStopUsecs: 0
                longRunningPrimitiveGCUsecs: nil
                longRunningPrimitiveCheckSequenceNumber: nil
                longRunningPrimitiveSignalUndelivered: nil
                checkAllocFiller: false
                tempOop: 0
                tempOop2: 0
                metaAccessorDepth: -2
                theUnknownShort: 0
                the2ndUnknownShort: 0
                imageFloatsBigEndian: 0
                maxExtSemTabSizeSet: false
                lastMethodCacheProbeWrite: 1988
                gcSemaphoreIndex: 0
                classByteArrayCompactIndex: 50
                checkedPluginName: nil
                nativeSP: nil
                nativeStackPointer: nil
                lowcodeCalloutState: nil
                shadowCallStackPointer: nil
                displayBits: 54942176
                displayWidth: 976
                displayHeight: 666
                displayDepth: 32
                statForceInterruptCheck: 11782
                statStackOverflow: 2194
                statStackPageDivorce: 23
                statCheckForEvents: 11825
                statProcessSwitch: 380
                statIOProcessEvents: 12
                statPendingFinalizationSignals: 0
                statIdleUsecs: 0
                debugCallbackPath: 0
                debugCallbackReturns: 0
                debugCallbackInvokes: 0
                parent: nil
                bootstrapping: false
                byteCount: 11777956
                breakCount: nil
                sendCount: 1348989
                lookupCount: 131603
                printSends: false
                printReturns: false
                traceOn: true
                myBitBlt: true
                displayForm: Form(976x666x32)
                fakeForm: Form(205x18x32)
                filesOpen: nil
                imageName: '/home/alistair/vmmaker/opensmalltalk-vm/cogsim64.01/Pharo.image'
                pluginList: {''->a StackInterpreterSimulatorLSB . 'SecurityPlugin'->a SecurityPlugin...etc...
                mappedPluginEntries: an OrderedCollection({a StackInterpreterSimulatorLSB . #primitiveBitOrLargeIntegers...etc...
                quitBlock: [closure] in StackInterpreterSimulatorLSB(StackInterpreterSimulator)...etc...
                transcript: a TranscriptStream
                displayView: a SimulatorImageMorph(1969565)
                eventTransformer: a SimulatorEventTransformer
                printFrameAtEachStep: false
                printBytecodeAtEachStep: false
                systemAttributes: a Dictionary(1->'Pharo.image' 2->'eval' 3->'| stdout |

stdou...etc...
                startMicroseconds: 3717692948071398
                lastYieldMicroseconds: 3717692948306938
                externalSemaphoreSignalRequests: #()
                externalSemaphoreSignalResponses: #()
                extSemTabSize: 256
                atEachStepBlock: nil
                disableBooleanCheat: false
                performFilters: nil
                eventQueue: a SharedQueue(20)
                assertVEPAES: false
                primTraceLog: nil

StackInterpreterSimulatorLSB(StackInterpreter)>>getErrorObjectFromPrimFailCode
        Receiver: a StackInterpreterSimulatorLSB
        Arguments and temporary variables:
                table: 13055688
                errObj: 13056176
                numSlots: 2
        Receiver's instance variables:
                objectMemory: a Spur32BitMMLESimulator
                messageSelector: 12933368
                argumentCount: 1
                newMethod: 15369696
                primFailCode: 21
                osErrorCode: -12
                exceptionPC: 0
                inFFIFlags: 0
                profileMethod: 12606720
                profileProcess: 12606720
                profileSemaphore: 12606720
                nextProfileTick: 0
                preemptionYields: true
                newFinalization: false
                sHEAFn: 77
                ffiExceptionResponse: 0
                currentBytecode: 225
                bytecodeSetSelector: 0
                localFP: -8736
                localIP: 15369730
                localSP: -8756
                stackLimit: -9216
                stackPage: a CogStackPage@-8192 -8200<->-8300 trace 1
                stackPages: an InterpreterStackPagesLSB
                method: 15369696
                instructionPointer: 30968663
                stackPointer: -8728
                framePointer: -8704
                localReturnValue: 4595456
                localAbsentReceiver: nil
                localAbsentReceiverOrZero: nil
                extA: nil
                extB: nil
                numExtB: nil
                primitiveFunctionPointer: #primitiveClosedir
                methodCache: #(17682552 6174 17814224 0 30886936 14087 30968808 0 12821552 7438...etc...
                nsMethodCache: #(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ni...etc...
                atCache: #(302368 9 4 0 0 0 0 0 4604296 2 2 0 0 0 0 0 48530384 7 2 0 0 0 0 0 15...etc...
                lkupClassTag: 3758
                lkupClass: 30787408
                methodDictLinearSearchLimit: 8
                highestRunnableProcessPriority: 40
                reenterInterpreter: ReenterInterpreter:
                nextWakeupUsecs: 3717692948323621
                nextPollUsecs: 3717692948311418
                inIOProcessEvents: 0
                interruptKeycode: 2094
                interruptPending: false
                savedWindowSize: 63963801
                imageHeaderFlags: 2
                fullScreenFlag: 0
                deferDisplayUpdates: false
                pendingFinalizationSignals: 0
                extraVMMemory: 0
                interpreterProxy: a StackInterpreterSimulatorLSB
                showSurfaceFn: nil
                primitiveTable: #(0 #primitiveAdd #primitiveSubtract #primitiveLessThan #primitiveGreaterThan...etc...
                primitiveAccessorDepthTable: #(-1 -1 0 0 0 0 0 0 0 0 -1 -1 0 -1 -1 0 0 0 -1 0 0...etc...
                externalPrimitiveTable: a CArrayAccessor on: #(104 94 97 106 120 116 111 118 14...etc...
                externalPrimitiveTableFirstFreeIndex: 61
                overflowedPage: a CogStackPage@-6144 -6156<->-7024 trace 1
                extraFramesToMoveOnOverflow: 3
                globalSessionID: 4246484935
                jmpBuf: nil
                jmpDepth: 0
                suspendedCallbacks: nil
                suspendedMethods: nil
                numStackPages: 8
                desiredNumStackPages: 8
                desiredEdenBytes: 12499584
                classNameIndex: 6
                thisClassIndex: 5
                metaclassNumSlots: 6
                interruptCheckChain: nil
                suppressHeartbeatFlag: false
                breakSelector: nil
                breakSelectorLength: -1073741824
                breakLookupClassTag: nil
                longRunningPrimitiveCheckMethod: nil
                longRunningPrimitiveCheckSemaphore: nil
                longRunningPrimitiveStartUsecs: 0
                longRunningPrimitiveStopUsecs: 0
                longRunningPrimitiveGCUsecs: nil
                longRunningPrimitiveCheckSequenceNumber: nil
                longRunningPrimitiveSignalUndelivered: nil
                checkAllocFiller: false
                tempOop: 0
                tempOop2: 0
                metaAccessorDepth: -2
                theUnknownShort: 0
                the2ndUnknownShort: 0
                imageFloatsBigEndian: 0
                maxExtSemTabSizeSet: false
                lastMethodCacheProbeWrite: 1988
                gcSemaphoreIndex: 0
                classByteArrayCompactIndex: 50
                checkedPluginName: nil
                nativeSP: nil
                nativeStackPointer: nil
                lowcodeCalloutState: nil
                shadowCallStackPointer: nil
                displayBits: 54942176
                displayWidth: 976
                displayHeight: 666
                displayDepth: 32
                statForceInterruptCheck: 11782
                statStackOverflow: 2194
                statStackPageDivorce: 23
                statCheckForEvents: 11825
                statProcessSwitch: 380
                statIOProcessEvents: 12
                statPendingFinalizationSignals: 0
                statIdleUsecs: 0
                debugCallbackPath: 0
                debugCallbackReturns: 0
                debugCallbackInvokes: 0
                parent: nil
                bootstrapping: false
                byteCount: 11777956
                breakCount: nil
                sendCount: 1348989
                lookupCount: 131603
                printSends: false
                printReturns: false
                traceOn: true
                myBitBlt: true
                displayForm: Form(976x666x32)
                fakeForm: Form(205x18x32)
                filesOpen: nil
                imageName: '/home/alistair/vmmaker/opensmalltalk-vm/cogsim64.01/Pharo.image'
                pluginList: {''->a StackInterpreterSimulatorLSB . 'SecurityPlugin'->a SecurityPlugin...etc...
                mappedPluginEntries: an OrderedCollection({a StackInterpreterSimulatorLSB . #primitiveBitOrLargeIntegers...etc...
                quitBlock: [closure] in StackInterpreterSimulatorLSB(StackInterpreterSimulator)...etc...
                transcript: a TranscriptStream
                displayView: a SimulatorImageMorph(1969565)
                eventTransformer: a SimulatorEventTransformer
                printFrameAtEachStep: false
                printBytecodeAtEachStep: false
                systemAttributes: a Dictionary(1->'Pharo.image' 2->'eval' 3->'| stdout |

stdou...etc...
                startMicroseconds: 3717692948071398
                lastYieldMicroseconds: 3717692948306938
                externalSemaphoreSignalRequests: #()
                externalSemaphoreSignalResponses: #()
                extSemTabSize: 256
                atEachStepBlock: nil
                disableBooleanCheat: false
                performFilters: nil
                eventQueue: a SharedQueue(20)
                assertVEPAES: false
                primTraceLog: nil

StackInterpreterSimulatorLSB(StackInterpreterSimulator)>>getErrorObjectFromPrimFailCode
        Receiver: a StackInterpreterSimulatorLSB
        Arguments and temporary variables:

        Receiver's instance variables:
                objectMemory: a Spur32BitMMLESimulator
                messageSelector: 12933368
                argumentCount: 1
                newMethod: 15369696
                primFailCode: 21
                osErrorCode: -12
                exceptionPC: 0
                inFFIFlags: 0
                profileMethod: 12606720
                profileProcess: 12606720
                profileSemaphore: 12606720
                nextProfileTick: 0
                preemptionYields: true
                newFinalization: false
                sHEAFn: 77
                ffiExceptionResponse: 0
                currentBytecode: 225
                bytecodeSetSelector: 0
                localFP: -8736
                localIP: 15369730
                localSP: -8756
                stackLimit: -9216
                stackPage: a CogStackPage@-8192 -8200<->-8300 trace 1
                stackPages: an InterpreterStackPagesLSB
                method: 15369696
                instructionPointer: 30968663
                stackPointer: -8728
                framePointer: -8704
                localReturnValue: 4595456
                localAbsentReceiver: nil
                localAbsentReceiverOrZero: nil
                extA: nil
                extB: nil
                numExtB: nil
                primitiveFunctionPointer: #primitiveClosedir
                methodCache: #(17682552 6174 17814224 0 30886936 14087 30968808 0 12821552 7438...etc...
                nsMethodCache: #(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ni...etc...
                atCache: #(302368 9 4 0 0 0 0 0 4604296 2 2 0 0 0 0 0 48530384 7 2 0 0 0 0 0 15...etc...
                lkupClassTag: 3758
                lkupClass: 30787408
                methodDictLinearSearchLimit: 8
                highestRunnableProcessPriority: 40
                reenterInterpreter: ReenterInterpreter:
                nextWakeupUsecs: 3717692948323621
                nextPollUsecs: 3717692948311418
                inIOProcessEvents: 0
                interruptKeycode: 2094
                interruptPending: false
                savedWindowSize: 63963801
                imageHeaderFlags: 2
                fullScreenFlag: 0
                deferDisplayUpdates: false
                pendingFinalizationSignals: 0
                extraVMMemory: 0
                interpreterProxy: a StackInterpreterSimulatorLSB
                showSurfaceFn: nil
                primitiveTable: #(0 #primitiveAdd #primitiveSubtract #primitiveLessThan #primitiveGreaterThan...etc...
                primitiveAccessorDepthTable: #(-1 -1 0 0 0 0 0 0 0 0 -1 -1 0 -1 -1 0 0 0 -1 0 0...etc...
                externalPrimitiveTable: a CArrayAccessor on: #(104 94 97 106 120 116 111 118 14...etc...
                externalPrimitiveTableFirstFreeIndex: 61
                overflowedPage: a CogStackPage@-6144 -6156<->-7024 trace 1
                extraFramesToMoveOnOverflow: 3
                globalSessionID: 4246484935
                jmpBuf: nil
                jmpDepth: 0
                suspendedCallbacks: nil
                suspendedMethods: nil
                numStackPages: 8
                desiredNumStackPages: 8
                desiredEdenBytes: 12499584
                classNameIndex: 6
                thisClassIndex: 5
                metaclassNumSlots: 6
                interruptCheckChain: nil
                suppressHeartbeatFlag: false
                breakSelector: nil
                breakSelectorLength: -1073741824
                breakLookupClassTag: nil
                longRunningPrimitiveCheckMethod: nil
                longRunningPrimitiveCheckSemaphore: nil
                longRunningPrimitiveStartUsecs: 0
                longRunningPrimitiveStopUsecs: 0
                longRunningPrimitiveGCUsecs: nil
                longRunningPrimitiveCheckSequenceNumber: nil
                longRunningPrimitiveSignalUndelivered: nil
                checkAllocFiller: false
                tempOop: 0
                tempOop2: 0
                metaAccessorDepth: -2
                theUnknownShort: 0
                the2ndUnknownShort: 0
                imageFloatsBigEndian: 0
                maxExtSemTabSizeSet: false
                lastMethodCacheProbeWrite: 1988
                gcSemaphoreIndex: 0
                classByteArrayCompactIndex: 50
                checkedPluginName: nil
                nativeSP: nil
                nativeStackPointer: nil
                lowcodeCalloutState: nil
                shadowCallStackPointer: nil
                displayBits: 54942176
                displayWidth: 976
                displayHeight: 666
                displayDepth: 32
                statForceInterruptCheck: 11782
                statStackOverflow: 2194
                statStackPageDivorce: 23
                statCheckForEvents: 11825
                statProcessSwitch: 380
                statIOProcessEvents: 12
                statPendingFinalizationSignals: 0
                statIdleUsecs: 0
                debugCallbackPath: 0
                debugCallbackReturns: 0
                debugCallbackInvokes: 0
                parent: nil
                bootstrapping: false
                byteCount: 11777956
                breakCount: nil
                sendCount: 1348989
                lookupCount: 131603
                printSends: false
                printReturns: false
                traceOn: true
                myBitBlt: true
                displayForm: Form(976x666x32)
                fakeForm: Form(205x18x32)
                filesOpen: nil
                imageName: '/home/alistair/vmmaker/opensmalltalk-vm/cogsim64.01/Pharo.image'
                pluginList: {''->a StackInterpreterSimulatorLSB . 'SecurityPlugin'->a SecurityPlugin...etc...
                mappedPluginEntries: an OrderedCollection({a StackInterpreterSimulatorLSB . #primitiveBitOrLargeIntegers...etc...
                quitBlock: [closure] in StackInterpreterSimulatorLSB(StackInterpreterSimulator)...etc...
                transcript: a TranscriptStream
                displayView: a SimulatorImageMorph(1969565)
                eventTransformer: a SimulatorEventTransformer
                printFrameAtEachStep: false
                printBytecodeAtEachStep: false
                systemAttributes: a Dictionary(1->'Pharo.image' 2->'eval' 3->'| stdout |

stdou...etc...
                startMicroseconds: 3717692948071398
                lastYieldMicroseconds: 3717692948306938
                externalSemaphoreSignalRequests: #()
                externalSemaphoreSignalResponses: #()
                extSemTabSize: 256
                atEachStepBlock: nil
                disableBooleanCheat: false
                performFilters: nil
                eventQueue: a SharedQueue(20)
                assertVEPAES: false
                primTraceLog: nil

StackInterpreterSimulatorLSB(StackInterpreter)>>reapAndResetErrorCodeTo:header:
        Receiver: a StackInterpreterSimulatorLSB
        Arguments and temporary variables:
                theSP: -8756
                methodHeader: 34734091
                initialPC: 15369731
        Receiver's instance variables:
                objectMemory: a Spur32BitMMLESimulator
                messageSelector: 12933368
                argumentCount: 1
                newMethod: 15369696
                primFailCode: 21
                osErrorCode: -12
                exceptionPC: 0
                inFFIFlags: 0
                profileMethod: 12606720
                profileProcess: 12606720
                profileSemaphore: 12606720
                nextProfileTick: 0
                preemptionYields: true
                newFinalization: false
                sHEAFn: 77
                ffiExceptionResponse: 0
                currentBytecode: 225
                bytecodeSetSelector: 0
                localFP: -8736
                localIP: 15369730
                localSP: -8756
                stackLimit: -9216
                stackPage: a CogStackPage@-8192 -8200<->-8300 trace 1
                stackPages: an InterpreterStackPagesLSB
                method: 15369696
                instructionPointer: 30968663
                stackPointer: -8728
                framePointer: -8704
                localReturnValue: 4595456
                localAbsentReceiver: nil
                localAbsentReceiverOrZero: nil
                extA: nil
                extB: nil
                numExtB: nil
                primitiveFunctionPointer: #primitiveClosedir
                methodCache: #(17682552 6174 17814224 0 30886936 14087 30968808 0 12821552 7438...etc...
                nsMethodCache: #(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ni...etc...
                atCache: #(302368 9 4 0 0 0 0 0 4604296 2 2 0 0 0 0 0 48530384 7 2 0 0 0 0 0 15...etc...
                lkupClassTag: 3758
                lkupClass: 30787408
                methodDictLinearSearchLimit: 8
                highestRunnableProcessPriority: 40
                reenterInterpreter: ReenterInterpreter:
                nextWakeupUsecs: 3717692948323621
                nextPollUsecs: 3717692948311418
                inIOProcessEvents: 0
                interruptKeycode: 2094
                interruptPending: false
                savedWindowSize: 63963801
                imageHeaderFlags: 2
                fullScreenFlag: 0
                deferDisplayUpdates: false
                pendingFinalizationSignals: 0
                extraVMMemory: 0
                interpreterProxy: a StackInterpreterSimulatorLSB
                showSurfaceFn: nil
                primitiveTable: #(0 #primitiveAdd #primitiveSubtract #primitiveLessThan #primitiveGreaterThan...etc...
                primitiveAccessorDepthTable: #(-1 -1 0 0 0 0 0 0 0 0 -1 -1 0 -1 -1 0 0 0 -1 0 0...etc...
                externalPrimitiveTable: a CArrayAccessor on: #(104 94 97 106 120 116 111 118 14...etc...
                externalPrimitiveTableFirstFreeIndex: 61
                overflowedPage: a CogStackPage@-6144 -6156<->-7024 trace 1
                extraFramesToMoveOnOverflow: 3
                globalSessionID: 4246484935
                jmpBuf: nil
                jmpDepth: 0
                suspendedCallbacks: nil
                suspendedMethods: nil
                numStackPages: 8
                desiredNumStackPages: 8
                desiredEdenBytes: 12499584
                classNameIndex: 6
                thisClassIndex: 5
                metaclassNumSlots: 6
                interruptCheckChain: nil
                suppressHeartbeatFlag: false
                breakSelector: nil
                breakSelectorLength: -1073741824
                breakLookupClassTag: nil
                longRunningPrimitiveCheckMethod: nil
                longRunningPrimitiveCheckSemaphore: nil
                longRunningPrimitiveStartUsecs: 0
                longRunningPrimitiveStopUsecs: 0
                longRunningPrimitiveGCUsecs: nil
                longRunningPrimitiveCheckSequenceNumber: nil
                longRunningPrimitiveSignalUndelivered: nil
                checkAllocFiller: false
                tempOop: 0
                tempOop2: 0
                metaAccessorDepth: -2
                theUnknownShort: 0
                the2ndUnknownShort: 0
                imageFloatsBigEndian: 0
                maxExtSemTabSizeSet: false
                lastMethodCacheProbeWrite: 1988
                gcSemaphoreIndex: 0
                classByteArrayCompactIndex: 50
                checkedPluginName: nil
                nativeSP: nil
                nativeStackPointer: nil
                lowcodeCalloutState: nil
                shadowCallStackPointer: nil
                displayBits: 54942176
                displayWidth: 976
                displayHeight: 666
                displayDepth: 32
                statForceInterruptCheck: 11782
                statStackOverflow: 2194
                statStackPageDivorce: 23
                statCheckForEvents: 11825
                statProcessSwitch: 380
                statIOProcessEvents: 12
                statPendingFinalizationSignals: 0
                statIdleUsecs: 0
                debugCallbackPath: 0
                debugCallbackReturns: 0
                debugCallbackInvokes: 0
                parent: nil
                bootstrapping: false
                byteCount: 11777956
                breakCount: nil
                sendCount: 1348989
                lookupCount: 131603
                printSends: false
                printReturns: false
                traceOn: true
                myBitBlt: true
                displayForm: Form(976x666x32)
                fakeForm: Form(205x18x32)
                filesOpen: nil
                imageName: '/home/alistair/vmmaker/opensmalltalk-vm/cogsim64.01/Pharo.image'
                pluginList: {''->a StackInterpreterSimulatorLSB . 'SecurityPlugin'->a SecurityPlugin...etc...
                mappedPluginEntries: an OrderedCollection({a StackInterpreterSimulatorLSB . #primitiveBitOrLargeIntegers...etc...
                quitBlock: [closure] in StackInterpreterSimulatorLSB(StackInterpreterSimulator)...etc...
                transcript: a TranscriptStream
                displayView: a SimulatorImageMorph(1969565)
                eventTransformer: a SimulatorEventTransformer
                printFrameAtEachStep: false
                printBytecodeAtEachStep: false
                systemAttributes: a Dictionary(1->'Pharo.image' 2->'eval' 3->'| stdout |

stdou...etc...
                startMicroseconds: 3717692948071398
                lastYieldMicroseconds: 3717692948306938
                externalSemaphoreSignalRequests: #()
                externalSemaphoreSignalResponses: #()
                extSemTabSize: 256
                atEachStepBlock: nil
                disableBooleanCheat: false
                performFilters: nil
                eventQueue: a SharedQueue(20)
                assertVEPAES: false
                primTraceLog: nil

StackInterpreterSimulatorLSB(StackInterpreter)>>internalActivateNewMethod
        Receiver: a StackInterpreterSimulatorLSB
        Arguments and temporary variables:
                methodHeader: 34734091
                numTemps: 2
                rcvr: 12669944
                i: 3
        Receiver's instance variables:
                objectMemory: a Spur32BitMMLESimulator
                messageSelector: 12933368
                argumentCount: 1
                newMethod: 15369696
                primFailCode: 21
                osErrorCode: -12
                exceptionPC: 0
                inFFIFlags: 0
                profileMethod: 12606720
                profileProcess: 12606720
                profileSemaphore: 12606720
                nextProfileTick: 0
                preemptionYields: true
                newFinalization: false
                sHEAFn: 77
                ffiExceptionResponse: 0
                currentBytecode: 225
                bytecodeSetSelector: 0
                localFP: -8736
                localIP: 15369730
                localSP: -8756
                stackLimit: -9216
                stackPage: a CogStackPage@-8192 -8200<->-8300 trace 1
                stackPages: an InterpreterStackPagesLSB
                method: 15369696
                instructionPointer: 30968663
                stackPointer: -8728
                framePointer: -8704
                localReturnValue: 4595456
                localAbsentReceiver: nil
                localAbsentReceiverOrZero: nil
                extA: nil
                extB: nil
                numExtB: nil
                primitiveFunctionPointer: #primitiveClosedir
                methodCache: #(17682552 6174 17814224 0 30886936 14087 30968808 0 12821552 7438...etc...
                nsMethodCache: #(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ni...etc...
                atCache: #(302368 9 4 0 0 0 0 0 4604296 2 2 0 0 0 0 0 48530384 7 2 0 0 0 0 0 15...etc...
                lkupClassTag: 3758
                lkupClass: 30787408
                methodDictLinearSearchLimit: 8
                highestRunnableProcessPriority: 40
                reenterInterpreter: ReenterInterpreter:
                nextWakeupUsecs: 3717692948323621
                nextPollUsecs: 3717692948311418
                inIOProcessEvents: 0
                interruptKeycode: 2094
                interruptPending: false
                savedWindowSize: 63963801
                imageHeaderFlags: 2
                fullScreenFlag: 0
                deferDisplayUpdates: false
                pendingFinalizationSignals: 0
                extraVMMemory: 0
                interpreterProxy: a StackInterpreterSimulatorLSB
                showSurfaceFn: nil
                primitiveTable: #(0 #primitiveAdd #primitiveSubtract #primitiveLessThan #primitiveGreaterThan...etc...
                primitiveAccessorDepthTable: #(-1 -1 0 0 0 0 0 0 0 0 -1 -1 0 -1 -1 0 0 0 -1 0 0...etc...
                externalPrimitiveTable: a CArrayAccessor on: #(104 94 97 106 120 116 111 118 14...etc...
                externalPrimitiveTableFirstFreeIndex: 61
                overflowedPage: a CogStackPage@-6144 -6156<->-7024 trace 1
                extraFramesToMoveOnOverflow: 3
                globalSessionID: 4246484935
                jmpBuf: nil
                jmpDepth: 0
                suspendedCallbacks: nil
                suspendedMethods: nil
                numStackPages: 8
                desiredNumStackPages: 8
                desiredEdenBytes: 12499584
                classNameIndex: 6
                thisClassIndex: 5
                metaclassNumSlots: 6
                interruptCheckChain: nil
                suppressHeartbeatFlag: false
                breakSelector: nil
                breakSelectorLength: -1073741824
                breakLookupClassTag: nil
                longRunningPrimitiveCheckMethod: nil
                longRunningPrimitiveCheckSemaphore: nil
                longRunningPrimitiveStartUsecs: 0
                longRunningPrimitiveStopUsecs: 0
                longRunningPrimitiveGCUsecs: nil
                longRunningPrimitiveCheckSequenceNumber: nil
                longRunningPrimitiveSignalUndelivered: nil
                checkAllocFiller: false
                tempOop: 0
                tempOop2: 0
                metaAccessorDepth: -2
                theUnknownShort: 0
                the2ndUnknownShort: 0
                imageFloatsBigEndian: 0
                maxExtSemTabSizeSet: false
                lastMethodCacheProbeWrite: 1988
                gcSemaphoreIndex: 0
                classByteArrayCompactIndex: 50
                checkedPluginName: nil
                nativeSP: nil
                nativeStackPointer: nil
                lowcodeCalloutState: nil
                shadowCallStackPointer: nil
                displayBits: 54942176
                displayWidth: 976
                displayHeight: 666
                displayDepth: 32
                statForceInterruptCheck: 11782
                statStackOverflow: 2194
                statStackPageDivorce: 23
                statCheckForEvents: 11825
                statProcessSwitch: 380
                statIOProcessEvents: 12
                statPendingFinalizationSignals: 0
                statIdleUsecs: 0
                debugCallbackPath: 0
                debugCallbackReturns: 0
                debugCallbackInvokes: 0
                parent: nil
                bootstrapping: false
                byteCount: 11777956
                breakCount: nil
                sendCount: 1348989
                lookupCount: 131603
                printSends: false
                printReturns: false
                traceOn: true
                myBitBlt: true
                displayForm: Form(976x666x32)
                fakeForm: Form(205x18x32)
                filesOpen: nil
                imageName: '/home/alistair/vmmaker/opensmalltalk-vm/cogsim64.01/Pharo.image'
                pluginList: {''->a StackInterpreterSimulatorLSB . 'SecurityPlugin'->a SecurityPlugin...etc...
                mappedPluginEntries: an OrderedCollection({a StackInterpreterSimulatorLSB . #primitiveBitOrLargeIntegers...etc...
                quitBlock: [closure] in StackInterpreterSimulatorLSB(StackInterpreterSimulator)...etc...
                transcript: a TranscriptStream
                displayView: a SimulatorImageMorph(1969565)
                eventTransformer: a SimulatorEventTransformer
                printFrameAtEachStep: false
                printBytecodeAtEachStep: false
                systemAttributes: a Dictionary(1->'Pharo.image' 2->'eval' 3->'| stdout |

stdou...etc...
                startMicroseconds: 3717692948071398
                lastYieldMicroseconds: 3717692948306938
                externalSemaphoreSignalRequests: #()
                externalSemaphoreSignalResponses: #()
                extSemTabSize: 256
                atEachStepBlock: nil
                disableBooleanCheat: false
                performFilters: nil
                eventQueue: a SharedQueue(20)
                assertVEPAES: false
                primTraceLog: nil

StackInterpreterSimulatorLSB(StackInterpreter)>>internalExecuteNewMethod
        Receiver: a StackInterpreterSimulatorLSB
        Arguments and temporary variables:
                succeeded: false
        Receiver's instance variables:
                objectMemory: a Spur32BitMMLESimulator
                messageSelector: 12933368
                argumentCount: 1
                newMethod: 15369696
                primFailCode: 21
                osErrorCode: -12
                exceptionPC: 0
                inFFIFlags: 0
                profileMethod: 12606720
                profileProcess: 12606720
                profileSemaphore: 12606720
                nextProfileTick: 0
                preemptionYields: true
                newFinalization: false
                sHEAFn: 77
                ffiExceptionResponse: 0
                currentBytecode: 225
                bytecodeSetSelector: 0
                localFP: -8736
                localIP: 15369730
                localSP: -8756
                stackLimit: -9216
                stackPage: a CogStackPage@-8192 -8200<->-8300 trace 1
                stackPages: an InterpreterStackPagesLSB
                method: 15369696
                instructionPointer: 30968663
                stackPointer: -8728
                framePointer: -8704
                localReturnValue: 4595456
                localAbsentReceiver: nil
                localAbsentReceiverOrZero: nil
                extA: nil
                extB: nil
                numExtB: nil
                primitiveFunctionPointer: #primitiveClosedir
                methodCache: #(17682552 6174 17814224 0 30886936 14087 30968808 0 12821552 7438...etc...
                nsMethodCache: #(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ni...etc...
                atCache: #(302368 9 4 0 0 0 0 0 4604296 2 2 0 0 0 0 0 48530384 7 2 0 0 0 0 0 15...etc...
                lkupClassTag: 3758
                lkupClass: 30787408
                methodDictLinearSearchLimit: 8
                highestRunnableProcessPriority: 40
                reenterInterpreter: ReenterInterpreter:
                nextWakeupUsecs: 3717692948323621
                nextPollUsecs: 3717692948311418
                inIOProcessEvents: 0
                interruptKeycode: 2094
                interruptPending: false
                savedWindowSize: 63963801
                imageHeaderFlags: 2
                fullScreenFlag: 0
                deferDisplayUpdates: false
                pendingFinalizationSignals: 0
                extraVMMemory: 0
                interpreterProxy: a StackInterpreterSimulatorLSB
                showSurfaceFn: nil
                primitiveTable: #(0 #primitiveAdd #primitiveSubtract #primitiveLessThan #primitiveGreaterThan...etc...
                primitiveAccessorDepthTable: #(-1 -1 0 0 0 0 0 0 0 0 -1 -1 0 -1 -1 0 0 0 -1 0 0...etc...
                externalPrimitiveTable: a CArrayAccessor on: #(104 94 97 106 120 116 111 118 14...etc...
                externalPrimitiveTableFirstFreeIndex: 61
                overflowedPage: a CogStackPage@-6144 -6156<->-7024 trace 1
                extraFramesToMoveOnOverflow: 3
                globalSessionID: 4246484935
                jmpBuf: nil
                jmpDepth: 0
                suspendedCallbacks: nil
                suspendedMethods: nil
                numStackPages: 8
                desiredNumStackPages: 8
                desiredEdenBytes: 12499584
                classNameIndex: 6
                thisClassIndex: 5
                metaclassNumSlots: 6
                interruptCheckChain: nil
                suppressHeartbeatFlag: false
                breakSelector: nil
                breakSelectorLength: -1073741824
                breakLookupClassTag: nil
                longRunningPrimitiveCheckMethod: nil
                longRunningPrimitiveCheckSemaphore: nil
                longRunningPrimitiveStartUsecs: 0
                longRunningPrimitiveStopUsecs: 0
                longRunningPrimitiveGCUsecs: nil
                longRunningPrimitiveCheckSequenceNumber: nil
                longRunningPrimitiveSignalUndelivered: nil
                checkAllocFiller: false
                tempOop: 0
                tempOop2: 0
                metaAccessorDepth: -2
                theUnknownShort: 0
                the2ndUnknownShort: 0
                imageFloatsBigEndian: 0
                maxExtSemTabSizeSet: false
                lastMethodCacheProbeWrite: 1988
                gcSemaphoreIndex: 0
                classByteArrayCompactIndex: 50
                checkedPluginName: nil
                nativeSP: nil
                nativeStackPointer: nil
                lowcodeCalloutState: nil
                shadowCallStackPointer: nil
                displayBits: 54942176
                displayWidth: 976
                displayHeight: 666
                displayDepth: 32
                statForceInterruptCheck: 11782
                statStackOverflow: 2194
                statStackPageDivorce: 23
                statCheckForEvents: 11825
                statProcessSwitch: 380
                statIOProcessEvents: 12
                statPendingFinalizationSignals: 0
                statIdleUsecs: 0
                debugCallbackPath: 0
                debugCallbackReturns: 0
                debugCallbackInvokes: 0
                parent: nil
                bootstrapping: false
                byteCount: 11777956
                breakCount: nil
                sendCount: 1348989
                lookupCount: 131603
                printSends: false
                printReturns: false
                traceOn: true
                myBitBlt: true
                displayForm: Form(976x666x32)
                fakeForm: Form(205x18x32)
                filesOpen: nil
                imageName: '/home/alistair/vmmaker/opensmalltalk-vm/cogsim64.01/Pharo.image'
                pluginList: {''->a StackInterpreterSimulatorLSB . 'SecurityPlugin'->a SecurityPlugin...etc...
                mappedPluginEntries: an OrderedCollection({a StackInterpreterSimulatorLSB . #primitiveBitOrLargeIntegers...etc...
                quitBlock: [closure] in StackInterpreterSimulatorLSB(StackInterpreterSimulator)...etc...
                transcript: a TranscriptStream
                displayView: a SimulatorImageMorph(1969565)
                eventTransformer: a SimulatorEventTransformer
                printFrameAtEachStep: false
                printBytecodeAtEachStep: false
                systemAttributes: a Dictionary(1->'Pharo.image' 2->'eval' 3->'| stdout |

stdou...etc...
                startMicroseconds: 3717692948071398
                lastYieldMicroseconds: 3717692948306938
                externalSemaphoreSignalRequests: #()
                externalSemaphoreSignalResponses: #()
                extSemTabSize: 256
                atEachStepBlock: nil
                disableBooleanCheat: false
                performFilters: nil
                eventQueue: a SharedQueue(20)
                assertVEPAES: false
                primTraceLog: nil

etc.

--

Reply | Threaded
Open this post in threaded view
|

Re: primitiveFailForOSError: causes assertion failure in the simulator

alistairgrant
 
Hi Eliot,

On Tue, Oct 23, 2018 at 06:38:41AM +0000, Alistair Grant wrote:
> Hi Eliot,
>
> Calling #primitiveFailForOSError: fails in the simulator (I guess I'm
> the first person to use it :-)).  It works properly in a real VM, of
> course.

I (think) I take this back.  It looks like the debug VM will crash in
about the same place:


$ ~/vmmaker/opensmalltalk-vm/products/debug/cogspur64linuxht/pharo -gdb Pharo.image

run Pharo.image

GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
Copyright (C) 2016 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:
<http://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 /home/alistair/vmmaker/opensmalltalk-vm/products/debug/cogspur64linuxht/lib/pharo/5.0-201810160053-FileAttributesPlugin203/pharo...done.
(gdb) run Pharo.image
Starting program: /home/alistair/vmmaker/opensmalltalk-vm/products/debug/cogspur64linuxht/lib/pharo/5.0-201810160053-FileAttributesPlugin203/pharo Pharo.image
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff625f700 (LWP 15319)]

...

Thread 1 "pharo" received signal SIGSEGV, Segmentation fault.
0x000000000047d81e in instSpecOfClass (classPointer=524377) at /home/alistair/vmmaker/opensmalltalk-vm/spur64src/vm/gcc3x-cointerp.c:50370
50370 classFormat = ((longAt((classPointer + BaseHeaderSize) + (((sqInt)((usqInt)(InstanceSpecificationIndex) << (shiftForWord())))))) >> 3);
(gdb) where
#0  0x000000000047d81e in instSpecOfClass (classPointer=524377) at /home/alistair/vmmaker/opensmalltalk-vm/spur64src/vm/gcc3x-cointerp.c:50370
#1  0x000000000049da8c in getErrorObjectFromPrimFailCode () at /home/alistair/vmmaker/opensmalltalk-vm/spur64src/vm/gcc3x-cointerp.c:65422
#2  0x00000000004aa547 in reapAndResetErrorCodeToheader (theSP=0x7fffffff73d0 "\200\215\t\002", methodHeader=275251281) at /home/alistair/vmmaker/opensmalltalk-vm/spur64src/vm/gcc3x-cointerp.c:71653
#3  0x0000000000435474 in activateCoggedNewMethod (inInterpreter=0) at /home/alistair/vmmaker/opensmalltalk-vm/spur64src/vm/gcc3x-cointerp.c:14171
#4  0x0000000000437422 in ceActivateFailingPrimitiveMethod (aPrimitiveMethod=38699480) at /home/alistair/vmmaker/opensmalltalk-vm/spur64src/vm/gcc3x-cointerp.c:14920
#5  0x0000000000a01656 in ?? ()
#6  0x0000000000000000 in ?? ()
(gdb) call printCallStack()
    0x7fffffff73f0 M File class>primFileAttribute:number: 0x20b6250: a(n) File class
    0x7fffffff7430 M File class>fileAttribute:number: 0x20b6250: a(n) File class
    0x7fffffff7470 M File class>modeOf: 0x20b6250: a(n) File class
    0x7fffffff74b8 M [] in File class>isDirectory: 0x20b6250: a(n) File class
    0x7fffffff74e8 M BlockClosure>on:do: 0x1e41eb0: a(n) BlockClosure
    0x7fffffff7528 M File class>isDirectory: 0x20b6250: a(n) File class
    0x7fffffff7560 M UnixStore(DiskStore)>isDirectory: 0xb909d8: a(n) UnixStore
    0x7fffffff7598 M FileSystem>isDirectory: 0xb5ede8: a(n) FileSystem
    0x7fffffff75d0 M FileReference>isDirectory 0x1e41a98: a(n) FileReference
    0x7fffffff7610 M StartupPreferencesHandler>lookInFolder:forFilesMatching: 0x1e31eb0: a(n) StartupPreferencesHandler
    0x7fffffff7668 I StartupPreferencesHandler>lookInPreferencesVersionFolder 0x1e31eb0: a(n) StartupPreferencesHandler
    0x7fffffff7698 M [] in StartupPreferencesHandler>buildActionList 0x1e31eb0: a(n) StartupPreferencesHandler
    0x7fffffff76d8 M [] in StartupPreferencesHandler>perform 0x1e31eb0: a(n) StartupPreferencesHandler
    0x7fffffff7720 M OrderedCollection>do: 0x1e31ec8: a(n) OrderedCollection
    0x7fffffff7770 I StartupPreferencesHandler>perform 0x1e31eb0: a(n) StartupPreferencesHandler
    0x7ffffffef2b8 I StartupPreferencesLoader>retrieveFilesStream 0x1e31ce0: a(n) StartupPreferencesLoader
    0x7ffffffef2f0 M [] in StartupPreferencesLoader>loadFromDefaultLocations 0x1e31ce0: a(n) StartupPreferencesLoader
    0x7ffffffef320 M BlockClosure>on:do: 0x1e31e70: a(n) BlockClosure
    0x7ffffffef370 I StartupPreferencesLoader>loadFromDefaultLocations 0x1e31ce0: a(n) StartupPreferencesLoader
    0x7ffffffef3a0 M [] in PharoCommandLineHandler>runPreferences 0xb8e980: a(n) PharoCommandLineHandler
    0x7ffffffef3d8 M BlockClosure>cull: 0x1e31cc0: a(n) BlockClosure
    0x7ffffffef418 M SystemDictionary(Dictionary)>at:ifPresent: 0x20c38c0: a(n) SystemDictionary
    0x7ffffffef468 I SmalltalkImage>at:ifPresent: 0x20bc2d8: a(n) SmalltalkImage
    0x7ffffffef4b8 I PharoCommandLineHandler>runPreferences 0xb8e980: a(n) PharoCommandLineHandler
    0x7ffffffef4f8 I PharoCommandLineHandler>activate 0xb8e980: a(n) PharoCommandLineHandler
    0x7ffffffef538 I PharoCommandLineHandler class(CommandLineHandler class)>activateWith: 0x20bd548: a(n) PharoCommandLineHandler class
    0x7ffffffef588 I [] in PharoCommandLineHandler class>activateWith: 0x20bd548: a(n) PharoCommandLineHandler class
    0x7ffffffef5d8 I WorldState>runStepMethodsIn: 0x27ecec8: a(n) WorldState
    0x7ffffffef620 I WorldMorph>runStepMethods 0x27d3658: a(n) WorldMorph
    0x7ffffffef660 I WorldState>doOneCycleNowFor: 0x27ecec8: a(n) WorldState
    0x7ffffffef6a8 I WorldState>doOneCycleFor: 0x27ecec8: a(n) WorldState
    0x7ffffffef6f0 I WorldMorph>doOneCycle 0x27d3658: a(n) WorldMorph
    0x7ffffffef730 I WorldMorph class>doOneCycle 0x27d1e68: a(n) WorldMorph class
    0x7ffffffef770 I [] in MorphicUIManager>spawnNewProcess 0x331d040: a(n) MorphicUIManager
         0x331d128 s [] in BlockClosure>newProcess


Cheers,
Alistair

Reply | Threaded
Open this post in threaded view
|

Re: primitiveFailForOSError: causes assertion failure in the simulator

Eliot Miranda-2
 
Hi Alistair,



On Thu, Oct 25, 2018 at 9:49 AM Alistair Grant <[hidden email]> wrote:
 
Hi Eliot,

On Tue, Oct 23, 2018 at 06:38:41AM +0000, Alistair Grant wrote:
> Hi Eliot,
>
> Calling #primitiveFailForOSError: fails in the simulator (I guess I'm
> the first person to use it :-)).  It works properly in a real VM, of
> course.

I (think) I take this back.  It looks like the debug VM will crash in
about the same place:


$ ~/vmmaker/opensmalltalk-vm/products/debug/cogspur64linuxht/pharo -gdb Pharo.image

run Pharo.image

GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
Copyright (C) 2016 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:
<http://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 /home/alistair/vmmaker/opensmalltalk-vm/products/debug/cogspur64linuxht/lib/pharo/5.0-201810160053-FileAttributesPlugin203/pharo...done.
(gdb) run Pharo.image
Starting program: /home/alistair/vmmaker/opensmalltalk-vm/products/debug/cogspur64linuxht/lib/pharo/5.0-201810160053-FileAttributesPlugin203/pharo Pharo.image
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff625f700 (LWP 15319)]

OK, I'll take a look.  I wonder have you installed the prototype in the specialObjectsArray? 

newArray at: 52 put: #(nil "nil => generic error" #'bad receiver'
#'bad argument' #'bad index'
#'bad number of arguments'
#'inappropriate operation'  #'unsupported operation'
#'no modification' #'insufficient object memory'
#'insufficient C memory' #'not found' #'bad method'
#'internal error in named primitive machinery'
#'object may move' #'resource limit exceeded'
#'object is pinned' #'primitive write beyond end of object'
#'object moved' #'object not pinned' #'callback error'),
{PrimitiveError new errorName: #'operating system error'; yourself.
ExceptionInFFICallError new errorName: #'exception in FFI call'; yourself}.


...

Thread 1 "pharo" received signal SIGSEGV, Segmentation fault.
0x000000000047d81e in instSpecOfClass (classPointer=524377) at /home/alistair/vmmaker/opensmalltalk-vm/spur64src/vm/gcc3x-cointerp.c:50370
50370           classFormat = ((longAt((classPointer + BaseHeaderSize) + (((sqInt)((usqInt)(InstanceSpecificationIndex) << (shiftForWord())))))) >> 3);
(gdb) where
#0  0x000000000047d81e in instSpecOfClass (classPointer=524377) at /home/alistair/vmmaker/opensmalltalk-vm/spur64src/vm/gcc3x-cointerp.c:50370
#1  0x000000000049da8c in getErrorObjectFromPrimFailCode () at /home/alistair/vmmaker/opensmalltalk-vm/spur64src/vm/gcc3x-cointerp.c:65422
#2  0x00000000004aa547 in reapAndResetErrorCodeToheader (theSP=0x7fffffff73d0 "\200\215\t\002", methodHeader=275251281) at /home/alistair/vmmaker/opensmalltalk-vm/spur64src/vm/gcc3x-cointerp.c:71653
#3  0x0000000000435474 in activateCoggedNewMethod (inInterpreter=0) at /home/alistair/vmmaker/opensmalltalk-vm/spur64src/vm/gcc3x-cointerp.c:14171
#4  0x0000000000437422 in ceActivateFailingPrimitiveMethod (aPrimitiveMethod=38699480) at /home/alistair/vmmaker/opensmalltalk-vm/spur64src/vm/gcc3x-cointerp.c:14920
#5  0x0000000000a01656 in ?? ()
#6  0x0000000000000000 in ?? ()
(gdb) call printCallStack()
    0x7fffffff73f0 M File class>primFileAttribute:number: 0x20b6250: a(n) File class
    0x7fffffff7430 M File class>fileAttribute:number: 0x20b6250: a(n) File class
    0x7fffffff7470 M File class>modeOf: 0x20b6250: a(n) File class
    0x7fffffff74b8 M [] in File class>isDirectory: 0x20b6250: a(n) File class
    0x7fffffff74e8 M BlockClosure>on:do: 0x1e41eb0: a(n) BlockClosure
    0x7fffffff7528 M File class>isDirectory: 0x20b6250: a(n) File class
    0x7fffffff7560 M UnixStore(DiskStore)>isDirectory: 0xb909d8: a(n) UnixStore
    0x7fffffff7598 M FileSystem>isDirectory: 0xb5ede8: a(n) FileSystem
    0x7fffffff75d0 M FileReference>isDirectory 0x1e41a98: a(n) FileReference
    0x7fffffff7610 M StartupPreferencesHandler>lookInFolder:forFilesMatching: 0x1e31eb0: a(n) StartupPreferencesHandler
    0x7fffffff7668 I StartupPreferencesHandler>lookInPreferencesVersionFolder 0x1e31eb0: a(n) StartupPreferencesHandler
    0x7fffffff7698 M [] in StartupPreferencesHandler>buildActionList 0x1e31eb0: a(n) StartupPreferencesHandler
    0x7fffffff76d8 M [] in StartupPreferencesHandler>perform 0x1e31eb0: a(n) StartupPreferencesHandler
    0x7fffffff7720 M OrderedCollection>do: 0x1e31ec8: a(n) OrderedCollection
    0x7fffffff7770 I StartupPreferencesHandler>perform 0x1e31eb0: a(n) StartupPreferencesHandler
    0x7ffffffef2b8 I StartupPreferencesLoader>retrieveFilesStream 0x1e31ce0: a(n) StartupPreferencesLoader
    0x7ffffffef2f0 M [] in StartupPreferencesLoader>loadFromDefaultLocations 0x1e31ce0: a(n) StartupPreferencesLoader
    0x7ffffffef320 M BlockClosure>on:do: 0x1e31e70: a(n) BlockClosure
    0x7ffffffef370 I StartupPreferencesLoader>loadFromDefaultLocations 0x1e31ce0: a(n) StartupPreferencesLoader
    0x7ffffffef3a0 M [] in PharoCommandLineHandler>runPreferences 0xb8e980: a(n) PharoCommandLineHandler
    0x7ffffffef3d8 M BlockClosure>cull: 0x1e31cc0: a(n) BlockClosure
    0x7ffffffef418 M SystemDictionary(Dictionary)>at:ifPresent: 0x20c38c0: a(n) SystemDictionary
    0x7ffffffef468 I SmalltalkImage>at:ifPresent: 0x20bc2d8: a(n) SmalltalkImage
    0x7ffffffef4b8 I PharoCommandLineHandler>runPreferences 0xb8e980: a(n) PharoCommandLineHandler
    0x7ffffffef4f8 I PharoCommandLineHandler>activate 0xb8e980: a(n) PharoCommandLineHandler
    0x7ffffffef538 I PharoCommandLineHandler class(CommandLineHandler class)>activateWith: 0x20bd548: a(n) PharoCommandLineHandler class
    0x7ffffffef588 I [] in PharoCommandLineHandler class>activateWith: 0x20bd548: a(n) PharoCommandLineHandler class
    0x7ffffffef5d8 I WorldState>runStepMethodsIn: 0x27ecec8: a(n) WorldState
    0x7ffffffef620 I WorldMorph>runStepMethods 0x27d3658: a(n) WorldMorph
    0x7ffffffef660 I WorldState>doOneCycleNowFor: 0x27ecec8: a(n) WorldState
    0x7ffffffef6a8 I WorldState>doOneCycleFor: 0x27ecec8: a(n) WorldState
    0x7ffffffef6f0 I WorldMorph>doOneCycle 0x27d3658: a(n) WorldMorph
    0x7ffffffef730 I WorldMorph class>doOneCycle 0x27d1e68: a(n) WorldMorph class
    0x7ffffffef770 I [] in MorphicUIManager>spawnNewProcess 0x331d040: a(n) MorphicUIManager
         0x331d128 s [] in BlockClosure>newProcess


Cheers,
Alistair



--
_,,,^..^,,,_
best, Eliot
Reply | Threaded
Open this post in threaded view
|

Re: primitiveFailForOSError: causes assertion failure in the simulator

alistairgrant
 
Hi Eliot,


On Thu, Oct 25, 2018 at 10:34:24AM -0700, Eliot Miranda wrote:
>  

> Hi Alistair,
>
>
>
> On Thu, Oct 25, 2018 at 9:49 AM Alistair Grant <[hidden email]> wrote:
>
>      
>     Hi Eliot,
>
>     On Tue, Oct 23, 2018 at 06:38:41AM +0000, Alistair Grant wrote:
>     > Hi Eliot,
>     >
>     > Calling #primitiveFailForOSError: fails in the simulator (I guess I'm
>     > the first person to use it :-)).  It works properly in a real VM, of
>     > course.
>
>     I (think) I take this back.  It looks like the debug VM will crash in
>     about the same place:
>
>
>     $ ~/vmmaker/opensmalltalk-vm/products/debug/cogspur64linuxht/pharo -gdb
>     Pharo.image
>
>     run Pharo.image
>
>     GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
>     Copyright (C) 2016 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:
>     <http://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 /home/alistair/vmmaker/opensmalltalk-vm/products/debug
>     /cogspur64linuxht/lib/pharo/5.0-201810160053-FileAttributesPlugin203/
>     pharo...done.
>     (gdb) run Pharo.image
>     Starting program: /home/alistair/vmmaker/opensmalltalk-vm/products/debug/
>     cogspur64linuxht/lib/pharo/5.0-201810160053-FileAttributesPlugin203/pharo
>     Pharo.image
>     [Thread debugging using libthread_db enabled]
>     Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
>     [New Thread 0x7ffff625f700 (LWP 15319)]
>
>
> OK, I'll take a look.  I wonder have you installed the prototype in the
> specialObjectsArray?

Yes (in pharo):

| error |

error := ((SmalltalkImage current specialObjectsArray) at: 52) at: 21.
{ error. error errorName. error errorCode. }

" an Array(
a PrimitiveError
#'operating system error'
nil)"



> newArray at: 52 put: #(nil "nil => generic error" #'bad receiver'
> #'bad argument' #'bad index'
> #'bad number of arguments'
> #'inappropriate operation'  #'unsupported operation'
> #'no modification' #'insufficient object memory'
> #'insufficient C memory' #'not found' #'bad method'
> #'internal error in named primitive machinery'
> #'object may move' #'resource limit exceeded'
> #'object is pinned' #'primitive write beyond end of object'
> #'object moved' #'object not pinned' #'callback error'),
> {PrimitiveError new errorName: #'operating system error'; yourself.
> ExceptionInFFICallError new errorName: #'exception in FFI call'; yourself}.

Pharo doesn't yet have ExceptionInFFICallError in the special objects
array.  If it's ready for porting, I can submit a PR to add it to Pharo.

Cheers,
Alistair