[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>
wrote:

>
> 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
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,
> Alistair
>

[snip]


-- 
_,,,^..^,,,_
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