Hi Eliot, If I try to run Pharo with the latest VMMaker (eem.2460) it results in the following error in BitBltSimulator. Does this look familiar? Thanks, Alistair 17 October 2018 9:21:26.389168 am VM: unix - Smalltalk Image: Squeak5.2rc1 [latest update: #18220] - The image was built about 5 days ago and VMMaker updated via Monticello. SecurityManager state: Restricted: false FileAccess: true SocketAccess: true Working Dir /home/alistair/vmmaker/opensmalltalk-vm/cogsim32.02 Trusted Dir /home/alistair/vmmaker/opensmalltalk-vm/cogsim32.02/secure Untrusted Dir /home/alistair/vmmaker/opensmalltalk-vm/cogsim32.02/My Squeak BitBltSimulator(Object)>>assert: Receiver: a BitBltSimulator Arguments and temporary variables: aBlock: false Receiver's instance variables: interpreterProxy: a Spur32BitMMLECoSimulator moduleName: nil translatedMethodCache: nil simulator: nil destForm: 18433000 sourceForm: 24522656 halftoneForm: 13732744 combinationRule: 24 destX: 10 destY: 38 width: 361 height: 121 sourceX: 0 sourceY: 0 clipX: 10 clipY: 38 clipWidth: 361 clipHeight: 121 sourceWidth: 361 sourceHeight: 121 sourceDepth: 32 sourcePitch: 1444 sourceBits: 4727104 sourcePPW: 1 sourceMSB: true destWidth: 976 destHeight: 665 destDepth: 32 destPitch: 3904 destBits: 53472024 destPPW: 1 destMSB: true bitCount: 0 skew: 0 mask1: 4294967295 mask2: 4294967295 preload: true nWords: 361 destMask: 4294967295 hDir: 1 vDir: 1 sourceIndex: 4901828 sourceDelta: -4 destIndex: 54090336 destDelta: 2460 sx: 0 sy: 0 dx: 10 dy: 38 bbW: 361 bbH: 121 halftoneHeight: 0 noSource: false noHalftone: true halftoneBase: nil sourceAlpha: nil srcBitShift: nil dstBitShift: nil bitBltOop: 4725720 affectedL: 0 affectedR: 976 affectedT: 0 affectedB: 665 opTable: #(#clearWord:with: #bitAnd:with: #bitAndInvert:with: #sourceWord:with:...etc... maskTable: #(1 3 nil 15 31 nil nil 255 nil nil nil nil nil nil nil 65535 nil ni...etc... ditherMatrix4x4: a CArrayAccessor on: #(0 8 2 10 12 4 14 6 3 11 1 9 15 7 13 5) ditherThresholds16: a CArrayAccessor on: #(0 2 4 6 8 10 12 14 16) ditherValues16: a CArrayAccessor on: #(0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...etc... hasSurfaceLock: false warpSrcShift: nil warpSrcMask: nil warpAlignShift: nil warpAlignMask: nil warpBitShiftTable: a CArrayAccessor on: #(nil nil nil nil nil nil nil nil nil n...etc... querySurfaceFn: nil lockSurfaceFn: nil unlockSurfaceFn: nil isWarping: false cmFlags: 0 cmMask: 0 cmShiftTable: nil cmMaskTable: nil cmLookupTable: nil cmBitsPerColor: 0 dither8Lookup: a CArrayAccessor on: #(0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 2 2 2 2...etc... componentAlphaModeColor: nil componentAlphaModeAlpha: nil ungammaLookupTable: nil gammaLookupTable: nil numGCsOnInvocation: 1 bitBltIsReceiver: true endOfDestination: 56068184 endOfSource: 4901828 BitBltSimulator(BitBltSimulation)>>srcLongAt: Receiver: a BitBltSimulator Arguments and temporary variables: idx: 4901828 Receiver's instance variables: interpreterProxy: a Spur32BitMMLECoSimulator moduleName: nil translatedMethodCache: nil simulator: nil destForm: 18433000 sourceForm: 24522656 halftoneForm: 13732744 combinationRule: 24 destX: 10 destY: 38 width: 361 height: 121 sourceX: 0 sourceY: 0 clipX: 10 clipY: 38 clipWidth: 361 clipHeight: 121 sourceWidth: 361 sourceHeight: 121 sourceDepth: 32 sourcePitch: 1444 sourceBits: 4727104 sourcePPW: 1 sourceMSB: true destWidth: 976 destHeight: 665 destDepth: 32 destPitch: 3904 destBits: 53472024 destPPW: 1 destMSB: true bitCount: 0 skew: 0 mask1: 4294967295 mask2: 4294967295 preload: true nWords: 361 destMask: 4294967295 hDir: 1 vDir: 1 sourceIndex: 4901828 sourceDelta: -4 destIndex: 54090336 destDelta: 2460 sx: 0 sy: 0 dx: 10 dy: 38 bbW: 361 bbH: 121 halftoneHeight: 0 noSource: false noHalftone: true halftoneBase: nil sourceAlpha: nil srcBitShift: nil dstBitShift: nil bitBltOop: 4725720 affectedL: 0 affectedR: 976 affectedT: 0 affectedB: 665 opTable: #(#clearWord:with: #bitAnd:with: #bitAndInvert:with: #sourceWord:with:...etc... maskTable: #(1 3 nil 15 31 nil nil 255 nil nil nil nil nil nil nil 65535 nil ni...etc... ditherMatrix4x4: a CArrayAccessor on: #(0 8 2 10 12 4 14 6 3 11 1 9 15 7 13 5) ditherThresholds16: a CArrayAccessor on: #(0 2 4 6 8 10 12 14 16) ditherValues16: a CArrayAccessor on: #(0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...etc... hasSurfaceLock: false warpSrcShift: nil warpSrcMask: nil warpAlignShift: nil warpAlignMask: nil warpBitShiftTable: a CArrayAccessor on: #(nil nil nil nil nil nil nil nil nil n...etc... querySurfaceFn: nil lockSurfaceFn: nil unlockSurfaceFn: nil isWarping: false cmFlags: 0 cmMask: 0 cmShiftTable: nil cmMaskTable: nil cmLookupTable: nil cmBitsPerColor: 0 dither8Lookup: a CArrayAccessor on: #(0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 2 2 2 2...etc... componentAlphaModeColor: nil componentAlphaModeAlpha: nil ungammaLookupTable: nil gammaLookupTable: nil numGCsOnInvocation: 1 bitBltIsReceiver: true endOfDestination: 56068184 endOfSource: 4901828 BitBltSimulator>>srcLongAt: Receiver: a BitBltSimulator Arguments and temporary variables: srcIndex: 4901828 Receiver's instance variables: interpreterProxy: a Spur32BitMMLECoSimulator moduleName: nil translatedMethodCache: nil simulator: nil destForm: 18433000 sourceForm: 24522656 halftoneForm: 13732744 combinationRule: 24 destX: 10 destY: 38 width: 361 height: 121 sourceX: 0 sourceY: 0 clipX: 10 clipY: 38 clipWidth: 361 clipHeight: 121 sourceWidth: 361 sourceHeight: 121 sourceDepth: 32 sourcePitch: 1444 sourceBits: 4727104 sourcePPW: 1 sourceMSB: true destWidth: 976 destHeight: 665 destDepth: 32 destPitch: 3904 destBits: 53472024 destPPW: 1 destMSB: true bitCount: 0 skew: 0 mask1: 4294967295 mask2: 4294967295 preload: true nWords: 361 destMask: 4294967295 hDir: 1 vDir: 1 sourceIndex: 4901828 sourceDelta: -4 destIndex: 54090336 destDelta: 2460 sx: 0 sy: 0 dx: 10 dy: 38 bbW: 361 bbH: 121 halftoneHeight: 0 noSource: false noHalftone: true halftoneBase: nil sourceAlpha: nil srcBitShift: nil dstBitShift: nil bitBltOop: 4725720 affectedL: 0 affectedR: 976 affectedT: 0 affectedB: 665 opTable: #(#clearWord:with: #bitAnd:with: #bitAndInvert:with: #sourceWord:with:...etc... maskTable: #(1 3 nil 15 31 nil nil 255 nil nil nil nil nil nil nil 65535 nil ni...etc... ditherMatrix4x4: a CArrayAccessor on: #(0 8 2 10 12 4 14 6 3 11 1 9 15 7 13 5) ditherThresholds16: a CArrayAccessor on: #(0 2 4 6 8 10 12 14 16) ditherValues16: a CArrayAccessor on: #(0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...etc... hasSurfaceLock: false warpSrcShift: nil warpSrcMask: nil warpAlignShift: nil warpAlignMask: nil warpBitShiftTable: a CArrayAccessor on: #(nil nil nil nil nil nil nil nil nil n...etc... querySurfaceFn: nil lockSurfaceFn: nil unlockSurfaceFn: nil isWarping: false cmFlags: 0 cmMask: 0 cmShiftTable: nil cmMaskTable: nil cmLookupTable: nil cmBitsPerColor: 0 dither8Lookup: a CArrayAccessor on: #(0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 2 2 2 2...etc... componentAlphaModeColor: nil componentAlphaModeAlpha: nil ungammaLookupTable: nil gammaLookupTable: nil numGCsOnInvocation: 1 bitBltIsReceiver: true endOfDestination: 56068184 endOfSource: 4901828 BitBltSimulator(BitBltSimulation)>>copyLoop Receiver: a BitBltSimulator Arguments and temporary variables: prevWord: 0 thisWord: 0 skewWord: 0 halftoneWord: 4294967295 mergeWord: 4293980400 hInc: 4 y: 38 unskew: 0 skewMask: 0 notSkewMask: 4294967295 mergeFnwith: #alphaBlend:with: destWord: 4293980400 word: 361 wordLimiT: 360 i: 121 Receiver's instance variables: interpreterProxy: a Spur32BitMMLECoSimulator moduleName: nil translatedMethodCache: nil simulator: nil destForm: 18433000 sourceForm: 24522656 halftoneForm: 13732744 combinationRule: 24 destX: 10 destY: 38 width: 361 height: 121 sourceX: 0 sourceY: 0 clipX: 10 clipY: 38 clipWidth: 361 clipHeight: 121 sourceWidth: 361 sourceHeight: 121 sourceDepth: 32 sourcePitch: 1444 sourceBits: 4727104 sourcePPW: 1 sourceMSB: true destWidth: 976 destHeight: 665 destDepth: 32 destPitch: 3904 destBits: 53472024 destPPW: 1 destMSB: true bitCount: 0 skew: 0 mask1: 4294967295 mask2: 4294967295 preload: true nWords: 361 destMask: 4294967295 hDir: 1 vDir: 1 sourceIndex: 4901828 sourceDelta: -4 destIndex: 54090336 destDelta: 2460 sx: 0 sy: 0 dx: 10 dy: 38 bbW: 361 bbH: 121 halftoneHeight: 0 noSource: false noHalftone: true halftoneBase: nil sourceAlpha: nil srcBitShift: nil dstBitShift: nil bitBltOop: 4725720 affectedL: 0 affectedR: 976 affectedT: 0 affectedB: 665 opTable: #(#clearWord:with: #bitAnd:with: #bitAndInvert:with: #sourceWord:with:...etc... maskTable: #(1 3 nil 15 31 nil nil 255 nil nil nil nil nil nil nil 65535 nil ni...etc... ditherMatrix4x4: a CArrayAccessor on: #(0 8 2 10 12 4 14 6 3 11 1 9 15 7 13 5) ditherThresholds16: a CArrayAccessor on: #(0 2 4 6 8 10 12 14 16) ditherValues16: a CArrayAccessor on: #(0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...etc... hasSurfaceLock: false warpSrcShift: nil warpSrcMask: nil warpAlignShift: nil warpAlignMask: nil warpBitShiftTable: a CArrayAccessor on: #(nil nil nil nil nil nil nil nil nil n...etc... querySurfaceFn: nil lockSurfaceFn: nil unlockSurfaceFn: nil isWarping: false cmFlags: 0 cmMask: 0 cmShiftTable: nil cmMaskTable: nil cmLookupTable: nil cmBitsPerColor: 0 dither8Lookup: a CArrayAccessor on: #(0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 2 2 2 2...etc... componentAlphaModeColor: nil componentAlphaModeAlpha: nil ungammaLookupTable: nil gammaLookupTable: nil numGCsOnInvocation: 1 bitBltIsReceiver: true endOfDestination: 56068184 endOfSource: 4901828 BitBltSimulator(BitBltSimulation)>>performCopyLoop Receiver: a BitBltSimulator Arguments and temporary variables: Receiver's instance variables: interpreterProxy: a Spur32BitMMLECoSimulator moduleName: nil translatedMethodCache: nil simulator: nil destForm: 18433000 sourceForm: 24522656 halftoneForm: 13732744 combinationRule: 24 destX: 10 destY: 38 width: 361 height: 121 sourceX: 0 sourceY: 0 clipX: 10 clipY: 38 clipWidth: 361 clipHeight: 121 sourceWidth: 361 sourceHeight: 121 sourceDepth: 32 sourcePitch: 1444 sourceBits: 4727104 sourcePPW: 1 sourceMSB: true destWidth: 976 destHeight: 665 destDepth: 32 destPitch: 3904 destBits: 53472024 destPPW: 1 destMSB: true bitCount: 0 skew: 0 mask1: 4294967295 mask2: 4294967295 preload: true nWords: 361 destMask: 4294967295 hDir: 1 vDir: 1 sourceIndex: 4901828 sourceDelta: -4 destIndex: 54090336 destDelta: 2460 sx: 0 sy: 0 dx: 10 dy: 38 bbW: 361 bbH: 121 halftoneHeight: 0 noSource: false noHalftone: true halftoneBase: nil sourceAlpha: nil srcBitShift: nil dstBitShift: nil bitBltOop: 4725720 affectedL: 0 affectedR: 976 affectedT: 0 affectedB: 665 opTable: #(#clearWord:with: #bitAnd:with: #bitAndInvert:with: #sourceWord:with:...etc... maskTable: #(1 3 nil 15 31 nil nil 255 nil nil nil nil nil nil nil 65535 nil ni...etc... ditherMatrix4x4: a CArrayAccessor on: #(0 8 2 10 12 4 14 6 3 11 1 9 15 7 13 5) ditherThresholds16: a CArrayAccessor on: #(0 2 4 6 8 10 12 14 16) ditherValues16: a CArrayAccessor on: #(0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...etc... hasSurfaceLock: false warpSrcShift: nil warpSrcMask: nil warpAlignShift: nil warpAlignMask: nil warpBitShiftTable: a CArrayAccessor on: #(nil nil nil nil nil nil nil nil nil n...etc... querySurfaceFn: nil lockSurfaceFn: nil unlockSurfaceFn: nil isWarping: false cmFlags: 0 cmMask: 0 cmShiftTable: nil cmMaskTable: nil cmLookupTable: nil cmBitsPerColor: 0 dither8Lookup: a CArrayAccessor on: #(0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 2 2 2 2...etc... componentAlphaModeColor: nil componentAlphaModeAlpha: nil ungammaLookupTable: nil gammaLookupTable: nil numGCsOnInvocation: 1 bitBltIsReceiver: true endOfDestination: 56068184 endOfSource: 4901828 BitBltSimulator(BitBltSimulation)>>copyBitsLockedAndClipped Receiver: a BitBltSimulator Arguments and temporary variables: Receiver's instance variables: interpreterProxy: a Spur32BitMMLECoSimulator moduleName: nil translatedMethodCache: nil simulator: nil destForm: 18433000 sourceForm: 24522656 halftoneForm: 13732744 combinationRule: 24 destX: 10 destY: 38 width: 361 height: 121 sourceX: 0 sourceY: 0 clipX: 10 clipY: 38 clipWidth: 361 clipHeight: 121 sourceWidth: 361 sourceHeight: 121 sourceDepth: 32 sourcePitch: 1444 sourceBits: 4727104 sourcePPW: 1 sourceMSB: true destWidth: 976 destHeight: 665 destDepth: 32 destPitch: 3904 destBits: 53472024 destPPW: 1 destMSB: true bitCount: 0 skew: 0 mask1: 4294967295 mask2: 4294967295 preload: true nWords: 361 destMask: 4294967295 hDir: 1 vDir: 1 sourceIndex: 4901828 sourceDelta: -4 destIndex: 54090336 destDelta: 2460 sx: 0 sy: 0 dx: 10 dy: 38 bbW: 361 bbH: 121 halftoneHeight: 0 noSource: false noHalftone: true halftoneBase: nil sourceAlpha: nil srcBitShift: nil dstBitShift: nil bitBltOop: 4725720 affectedL: 0 affectedR: 976 affectedT: 0 affectedB: 665 opTable: #(#clearWord:with: #bitAnd:with: #bitAndInvert:with: #sourceWord:with:...etc... maskTable: #(1 3 nil 15 31 nil nil 255 nil nil nil nil nil nil nil 65535 nil ni...etc... ditherMatrix4x4: a CArrayAccessor on: #(0 8 2 10 12 4 14 6 3 11 1 9 15 7 13 5) ditherThresholds16: a CArrayAccessor on: #(0 2 4 6 8 10 12 14 16) ditherValues16: a CArrayAccessor on: #(0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...etc... hasSurfaceLock: false warpSrcShift: nil warpSrcMask: nil warpAlignShift: nil warpAlignMask: nil warpBitShiftTable: a CArrayAccessor on: #(nil nil nil nil nil nil nil nil nil n...etc... querySurfaceFn: nil lockSurfaceFn: nil unlockSurfaceFn: nil isWarping: false cmFlags: 0 cmMask: 0 cmShiftTable: nil cmMaskTable: nil cmLookupTable: nil cmBitsPerColor: 0 dither8Lookup: a CArrayAccessor on: #(0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 2 2 2 2...etc... componentAlphaModeColor: nil componentAlphaModeAlpha: nil ungammaLookupTable: nil gammaLookupTable: nil numGCsOnInvocation: 1 bitBltIsReceiver: true endOfDestination: 56068184 endOfSource: 4901828 [] in BitBltSimulator(BitBltSimulation)>>copyBits Receiver: a BitBltSimulator Arguments and temporary variables: Receiver's instance variables: interpreterProxy: a Spur32BitMMLECoSimulator moduleName: nil translatedMethodCache: nil simulator: nil destForm: 18433000 sourceForm: 24522656 halftoneForm: 13732744 combinationRule: 24 destX: 10 destY: 38 width: 361 height: 121 sourceX: 0 sourceY: 0 clipX: 10 clipY: 38 clipWidth: 361 clipHeight: 121 sourceWidth: 361 sourceHeight: 121 sourceDepth: 32 sourcePitch: 1444 sourceBits: 4727104 sourcePPW: 1 sourceMSB: true destWidth: 976 destHeight: 665 destDepth: 32 destPitch: 3904 destBits: 53472024 destPPW: 1 destMSB: true bitCount: 0 skew: 0 mask1: 4294967295 mask2: 4294967295 preload: true nWords: 361 destMask: 4294967295 hDir: 1 vDir: 1 sourceIndex: 4901828 sourceDelta: -4 destIndex: 54090336 destDelta: 2460 sx: 0 sy: 0 dx: 10 dy: 38 bbW: 361 bbH: 121 halftoneHeight: 0 noSource: false noHalftone: true halftoneBase: nil sourceAlpha: nil srcBitShift: nil dstBitShift: nil bitBltOop: 4725720 affectedL: 0 affectedR: 976 affectedT: 0 affectedB: 665 opTable: #(#clearWord:with: #bitAnd:with: #bitAndInvert:with: #sourceWord:with:...etc... maskTable: #(1 3 nil 15 31 nil nil 255 nil nil nil nil nil nil nil 65535 nil ni...etc... ditherMatrix4x4: a CArrayAccessor on: #(0 8 2 10 12 4 14 6 3 11 1 9 15 7 13 5) ditherThresholds16: a CArrayAccessor on: #(0 2 4 6 8 10 12 14 16) ditherValues16: a CArrayAccessor on: #(0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...etc... hasSurfaceLock: false warpSrcShift: nil warpSrcMask: nil warpAlignShift: nil warpAlignMask: nil warpBitShiftTable: a CArrayAccessor on: #(nil nil nil nil nil nil nil nil nil n...etc... querySurfaceFn: nil lockSurfaceFn: nil unlockSurfaceFn: nil isWarping: false cmFlags: 0 cmMask: 0 cmShiftTable: nil cmMaskTable: nil cmLookupTable: nil cmBitsPerColor: 0 dither8Lookup: a CArrayAccessor on: #(0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 2 2 2 2...etc... componentAlphaModeColor: nil componentAlphaModeAlpha: nil ungammaLookupTable: nil gammaLookupTable: nil numGCsOnInvocation: 1 bitBltIsReceiver: true endOfDestination: 56068184 endOfSource: 4901828 True>>ifTrue:ifFalse: Receiver: true Arguments and temporary variables: trueAlternativeBlock: [closure] in BitBltSimulator(BitBltSimulation)>>copyBits falseAlternativeBlock: [closure] in BitBltSimulator>>cppIf:ifTrue:ifFalse: Receiver's instance variables: true BitBltSimulator>>cppIf:ifTrue:ifFalse: Receiver: a BitBltSimulator Arguments and temporary variables: conditionBlockOrSymbolValue: #'ENABLE_FAST_BLT' trueExpressionOrBlock: [closure] in BitBltSimulator(BitBltSimulation)>>copyBits...etc... falseExpressionOrBlockOrNil: [closure] in BitBltSimulator(BitBltSimulation)>>copyBits...etc... Receiver's instance variables: interpreterProxy: a Spur32BitMMLECoSimulator moduleName: nil translatedMethodCache: nil simulator: nil destForm: 18433000 sourceForm: 24522656 halftoneForm: 13732744 combinationRule: 24 destX: 10 destY: 38 width: 361 height: 121 sourceX: 0 sourceY: 0 clipX: 10 clipY: 38 clipWidth: 361 clipHeight: 121 sourceWidth: 361 sourceHeight: 121 sourceDepth: 32 sourcePitch: 1444 sourceBits: 4727104 sourcePPW: 1 sourceMSB: true destWidth: 976 destHeight: 665 destDepth: 32 destPitch: 3904 destBits: 53472024 destPPW: 1 destMSB: true bitCount: 0 skew: 0 mask1: 4294967295 mask2: 4294967295 preload: true nWords: 361 destMask: 4294967295 hDir: 1 vDir: 1 sourceIndex: 4901828 sourceDelta: -4 destIndex: 54090336 destDelta: 2460 sx: 0 sy: 0 dx: 10 dy: 38 bbW: 361 bbH: 121 halftoneHeight: 0 noSource: false noHalftone: true halftoneBase: nil sourceAlpha: nil srcBitShift: nil dstBitShift: nil bitBltOop: 4725720 affectedL: 0 affectedR: 976 affectedT: 0 affectedB: 665 opTable: #(#clearWord:with: #bitAnd:with: #bitAndInvert:with: #sourceWord:with:...etc... maskTable: #(1 3 nil 15 31 nil nil 255 nil nil nil nil nil nil nil 65535 nil ni...etc... ditherMatrix4x4: a CArrayAccessor on: #(0 8 2 10 12 4 14 6 3 11 1 9 15 7 13 5) ditherThresholds16: a CArrayAccessor on: #(0 2 4 6 8 10 12 14 16) ditherValues16: a CArrayAccessor on: #(0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...etc... hasSurfaceLock: false warpSrcShift: nil warpSrcMask: nil warpAlignShift: nil warpAlignMask: nil warpBitShiftTable: a CArrayAccessor on: #(nil nil nil nil nil nil nil nil nil n...etc... querySurfaceFn: nil lockSurfaceFn: nil unlockSurfaceFn: nil isWarping: false cmFlags: 0 cmMask: 0 cmShiftTable: nil cmMaskTable: nil cmLookupTable: nil cmBitsPerColor: 0 dither8Lookup: a CArrayAccessor on: #(0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 2 2 2 2...etc... componentAlphaModeColor: nil componentAlphaModeAlpha: nil ungammaLookupTable: nil gammaLookupTable: nil numGCsOnInvocation: 1 bitBltIsReceiver: true endOfDestination: 56068184 endOfSource: 4901828 BitBltSimulator(BitBltSimulation)>>copyBits Receiver: a BitBltSimulator Arguments and temporary variables: Receiver's instance variables: interpreterProxy: a Spur32BitMMLECoSimulator moduleName: nil translatedMethodCache: nil simulator: nil destForm: 18433000 sourceForm: 24522656 halftoneForm: 13732744 combinationRule: 24 destX: 10 destY: 38 width: 361 height: 121 sourceX: 0 sourceY: 0 clipX: 10 clipY: 38 clipWidth: 361 clipHeight: 121 sourceWidth: 361 sourceHeight: 121 sourceDepth: 32 sourcePitch: 1444 sourceBits: 4727104 sourcePPW: 1 sourceMSB: true destWidth: 976 destHeight: 665 destDepth: 32 destPitch: 3904 destBits: 53472024 destPPW: 1 destMSB: true bitCount: 0 skew: 0 mask1: 4294967295 mask2: 4294967295 preload: true nWords: 361 destMask: 4294967295 hDir: 1 vDir: 1 sourceIndex: 4901828 sourceDelta: -4 destIndex: 54090336 destDelta: 2460 sx: 0 sy: 0 dx: 10 dy: 38 bbW: 361 bbH: 121 halftoneHeight: 0 noSource: false noHalftone: true halftoneBase: nil sourceAlpha: nil srcBitShift: nil dstBitShift: nil bitBltOop: 4725720 affectedL: 0 affectedR: 976 affectedT: 0 affectedB: 665 opTable: #(#clearWord:with: #bitAnd:with: #bitAndInvert:with: #sourceWord:with:...etc... maskTable: #(1 3 nil 15 31 nil nil 255 nil nil nil nil nil nil nil 65535 nil ni...etc... ditherMatrix4x4: a CArrayAccessor on: #(0 8 2 10 12 4 14 6 3 11 1 9 15 7 13 5) ditherThresholds16: a CArrayAccessor on: #(0 2 4 6 8 10 12 14 16) ditherValues16: a CArrayAccessor on: #(0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...etc... hasSurfaceLock: false warpSrcShift: nil warpSrcMask: nil warpAlignShift: nil warpAlignMask: nil warpBitShiftTable: a CArrayAccessor on: #(nil nil nil nil nil nil nil nil nil n...etc... querySurfaceFn: nil lockSurfaceFn: nil unlockSurfaceFn: nil isWarping: false cmFlags: 0 cmMask: 0 cmShiftTable: nil cmMaskTable: nil cmLookupTable: nil cmBitsPerColor: 0 dither8Lookup: a CArrayAccessor on: #(0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 2 2 2 2...etc... componentAlphaModeColor: nil componentAlphaModeAlpha: nil ungammaLookupTable: nil gammaLookupTable: nil numGCsOnInvocation: 1 bitBltIsReceiver: true endOfDestination: 56068184 endOfSource: 4901828 BitBltSimulator(BitBltSimulation)>>primitiveCopyBits Receiver: a BitBltSimulator Arguments and temporary variables: rcvr: 4725720 Receiver's instance variables: interpreterProxy: a Spur32BitMMLECoSimulator moduleName: nil translatedMethodCache: nil simulator: nil destForm: 18433000 sourceForm: 24522656 halftoneForm: 13732744 combinationRule: 24 destX: 10 destY: 38 width: 361 height: 121 sourceX: 0 sourceY: 0 clipX: 10 clipY: 38 clipWidth: 361 clipHeight: 121 sourceWidth: 361 sourceHeight: 121 sourceDepth: 32 sourcePitch: 1444 sourceBits: 4727104 sourcePPW: 1 sourceMSB: true destWidth: 976 destHeight: 665 destDepth: 32 destPitch: 3904 destBits: 53472024 destPPW: 1 destMSB: true bitCount: 0 skew: 0 mask1: 4294967295 mask2: 4294967295 preload: true nWords: 361 destMask: 4294967295 hDir: 1 vDir: 1 sourceIndex: 4901828 sourceDelta: -4 destIndex: 54090336 destDelta: 2460 sx: 0 sy: 0 dx: 10 dy: 38 bbW: 361 bbH: 121 halftoneHeight: 0 noSource: false noHalftone: true halftoneBase: nil sourceAlpha: nil srcBitShift: nil dstBitShift: nil bitBltOop: 4725720 affectedL: 0 affectedR: 976 affectedT: 0 affectedB: 665 opTable: #(#clearWord:with: #bitAnd:with: #bitAndInvert:with: #sourceWord:with:...etc... maskTable: #(1 3 nil 15 31 nil nil 255 nil nil nil nil nil nil nil 65535 nil ni...etc... ditherMatrix4x4: a CArrayAccessor on: #(0 8 2 10 12 4 14 6 3 11 1 9 15 7 13 5) ditherThresholds16: a CArrayAccessor on: #(0 2 4 6 8 10 12 14 16) ditherValues16: a CArrayAccessor on: #(0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...etc... hasSurfaceLock: false warpSrcShift: nil warpSrcMask: nil warpAlignShift: nil warpAlignMask: nil warpBitShiftTable: a CArrayAccessor on: #(nil nil nil nil nil nil nil nil nil n...etc... querySurfaceFn: nil lockSurfaceFn: nil unlockSurfaceFn: nil isWarping: false cmFlags: 0 cmMask: 0 cmShiftTable: nil cmMaskTable: nil cmLookupTable: nil cmBitsPerColor: 0 dither8Lookup: a CArrayAccessor on: #(0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 2 2 2 2...etc... componentAlphaModeColor: nil componentAlphaModeAlpha: nil ungammaLookupTable: nil gammaLookupTable: nil numGCsOnInvocation: 1 bitBltIsReceiver: true endOfDestination: 56068184 endOfSource: 4901828 BitBltSimulator>>primitiveCopyBits Receiver: a BitBltSimulator Arguments and temporary variables: Receiver's instance variables: interpreterProxy: a Spur32BitMMLECoSimulator moduleName: nil translatedMethodCache: nil simulator: nil destForm: 18433000 sourceForm: 24522656 halftoneForm: 13732744 combinationRule: 24 destX: 10 destY: 38 width: 361 height: 121 sourceX: 0 sourceY: 0 clipX: 10 clipY: 38 clipWidth: 361 clipHeight: 121 sourceWidth: 361 sourceHeight: 121 sourceDepth: 32 sourcePitch: 1444 sourceBits: 4727104 sourcePPW: 1 sourceMSB: true destWidth: 976 destHeight: 665 destDepth: 32 destPitch: 3904 destBits: 53472024 destPPW: 1 destMSB: true bitCount: 0 skew: 0 mask1: 4294967295 mask2: 4294967295 preload: true nWords: 361 destMask: 4294967295 hDir: 1 vDir: 1 sourceIndex: 4901828 sourceDelta: -4 destIndex: 54090336 destDelta: 2460 sx: 0 sy: 0 dx: 10 dy: 38 bbW: 361 bbH: 121 halftoneHeight: 0 noSource: false noHalftone: true halftoneBase: nil sourceAlpha: nil srcBitShift: nil dstBitShift: nil bitBltOop: 4725720 affectedL: 0 affectedR: 976 affectedT: 0 affectedB: 665 opTable: #(#clearWord:with: #bitAnd:with: #bitAndInvert:with: #sourceWord:with:...etc... maskTable: #(1 3 nil 15 31 nil nil 255 nil nil nil nil nil nil nil 65535 nil ni...etc... ditherMatrix4x4: a CArrayAccessor on: #(0 8 2 10 12 4 14 6 3 11 1 9 15 7 13 5) ditherThresholds16: a CArrayAccessor on: #(0 2 4 6 8 10 12 14 16) ditherValues16: a CArrayAccessor on: #(0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...etc... hasSurfaceLock: false warpSrcShift: nil warpSrcMask: nil warpAlignShift: nil warpAlignMask: nil warpBitShiftTable: a CArrayAccessor on: #(nil nil nil nil nil nil nil nil nil n...etc... querySurfaceFn: nil lockSurfaceFn: nil unlockSurfaceFn: nil isWarping: false cmFlags: 0 cmMask: 0 cmShiftTable: nil cmMaskTable: nil cmLookupTable: nil cmBitsPerColor: 0 dither8Lookup: a CArrayAccessor on: #(0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 2 2 2 2...etc... componentAlphaModeColor: nil componentAlphaModeAlpha: nil ungammaLookupTable: nil gammaLookupTable: nil numGCsOnInvocation: 1 bitBltIsReceiver: true endOfDestination: 56068184 endOfSource: 4901828 CogVMSimulatorLSB(CogVMSimulator)>>callExternalPrimitive: CogVMSimulatorLSB(StackInterpreter)>>dispatchFunctionPointer: CogVMSimulatorLSB(StackInterpreter)>>slowPrimitiveResponse |
Hi Alistair, On Wed, Oct 17, 2018 at 9:28 AM Alistair Grant <[hidden email]> wrote:
Yes. I am working on fixing a bug in BitBlt where the copyBits primitive accesses a word past the end of the source bitmap. If the source bitmap is an external surface and abuts the end of a page then accessing the word beyond the bitmap will cause an access violation and crash the VM. I have added asserts to catch the bug before it crashes the VM. Until I have the bug fixed you'll have to tolerate the assert fails. In the simulator you can use an exception handler to squash the asserts, e.g. | sis m | sis := StackInterpreterSimulator newWithOptions: #(ObjectMemory Spur32BitMemoryManager). m := BitBltSimulation>>#copyBitsLockedAndClipped. sis desiredNumStackPages: 8. sis assertValidExecutionPointersAtEachStep: false. sis openOn: '/Users/eliot/Squeak/Squeak5.2/bitbltbug'. sis openAsMorph. [sis run] on: AssertionFailure do: [:ex| ex signalerContext sender sender sender sender sender method ~~ m ifTrue: [ex pass]. ex resume: nil] HTH Thanks, [snip] _,,,^..^,,,_ best, Eliot |
Hi Eliot, On Wed, 17 Oct 2018 at 18:37, Eliot Miranda <[hidden email]> wrote: > On Wed, Oct 17, 2018 at 9:28 AM Alistair Grant <[hidden email]> wrote: >> >> If I try to run Pharo with the latest VMMaker (eem.2460) it results in the >> following error in BitBltSimulator. Does this look familiar? > > > Yes. I am working on fixing a bug in BitBlt where the copyBits primitive accesses a word past the end of the source bitmap. If the source bitmap is an external surface and abuts the end of a page then accessing the word beyond the bitmap will cause an access violation and crash the VM. I have added asserts to catch the bug before it crashes the VM. Until I have the bug fixed you'll have to tolerate the assert fails. In the simulator you can use an exception handler to squash the asserts, e.g. > > | sis m | > sis := StackInterpreterSimulator newWithOptions: #(ObjectMemory Spur32BitMemoryManager). > m := BitBltSimulation>>#copyBitsLockedAndClipped. > sis desiredNumStackPages: 8. > sis assertValidExecutionPointersAtEachStep: false. > sis openOn: '/Users/eliot/Squeak/Squeak5.2/bitbltbug'. > sis openAsMorph. > [sis run] > on: AssertionFailure > do: [:ex| > ex signalerContext sender sender sender sender sender method ~~ m ifTrue: [ex pass]. > ex resume: nil] Thanks! I don't think I would have come up with this work-around. Interestingly the image runs successfully with the CogVMSimulator, but just ends up in the idle loop when using StackInterpreterSimulator. Anyway, I want to focus on finishing off FileAttributesPlugin first. Thanks again, Alistair |
Free forum by Nabble | Edit this page |