[Vm-dev] BitBltSimulator assertion failure

Eliot Miranda eliot.miranda at gmail.com
Wed Oct 17 16:37:38 UTC 2018

Hi Alistair,
On Wed, Oct 17, 2018 at 9:28 AM Alistair Grant <akgrant0710 at gmail.com>

> 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?

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
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]


> Alistair


best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20181017/b424d0c1/attachment.html>

More information about the Vm-dev mailing list