[Vm-dev] New warnings with new BitBlt primitive

Eliot Miranda eliot.miranda at gmail.com
Wed Jun 6 16:24:38 UTC 2018


Hi Clément,

On Wed, Jun 6, 2018 at 2:07 AM, Clément Bera <bera.clement at gmail.com> wrote:

> Hi all,
>
> Since the recent changes in the BitBlt primitive I now have new warning
> failures.
> I can't reproduce my use-case in the simulator AFAIK (I use non simulable
> code).
> Here's the trace I get [1], looks like the code is accessing the byteSizeOf
> an oop without checking for forwarders, in my case I have the warning
> because the object is a forwarder.
>

Right.  It looks to be an old bug that the new primitiveDisplayString
short-cut for zero-sided strings exposes.  I've fixed the VMMaker.oscog
package.  Am just regenerating the plugin now.


>
> Any idea what this is about? I guess I can provide an image to reproduce
> but it's a 150Mb wide 64 bits image...
>
> [1]
> * thread #1: tid = 0x44223d, 0x0000000100001783 Squeak`warning(s="(classIndexOf(oop))
> > (isForwardedObjectClassIndexPun()) 34576") + 19 at gcc3x-interp.c:40,
> queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
>     frame #0: 0x0000000100001783 Squeak`warning(s="(classIndexOf(oop)) > (
> isForwardedObjectClassIndexPun()) 34576") + 19 at gcc3x-interp.c:40
> [...]
>
> *(lldb)* bt
> * thread #1: tid = 0x44223d, 0x0000000100001783 Squeak`warning(s="(classIndexOf(oop))
> > (isForwardedObjectClassIndexPun()) 34576") + 19 at gcc3x-interp.c:40,
> queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
>   * frame #0: 0x0000000100001783 Squeak`warning(s="(classIndexOf(oop)) > (
> isForwardedObjectClassIndexPun()) 34576") + 19 at gcc3x-interp.c:40
>     frame #1: 0x00000001000438f4 Squeak`byteSizeOf(oop=4633303952) + 100
> at gcc3x-interp.c:34576
>     frame #2: 0x0000000100107a4f Squeak`loadBitBltFromwarping(bbObj=4423438048,
> aBool=0) + 2351 at BitBltPlugin.c:3373
>     frame #3: 0x00000001000fd955 Squeak`primitiveDisplayString + 341 at
> BitBltPlugin.c:5185
>     frame #4: 0x0000000100097148 Squeak`primitiveExternalCall + 664 at
> gcc3x-interp.c:66133
>     frame #5: 0x000000010000bc64 Squeak`interpret + 41892 at
> gcc3x-interp.c:5679
>     frame #6: 0x00000001000019b8 Squeak`interpret + 248 at
> gcc3x-interp.c:2430
>
> *(lldb)* up
> frame #1: 0x00000001000438f4 Squeak`byteSizeOf(oop=4633303952) + 100 at
> gcc3x-interp.c:34576
>    34573 /* begin numBytesOf: */
>    34574 fmt = (((usqInt) (longAt(oop))) >> (formatShift())) &
> (formatMask());
>    34575 /* begin numSlotsOf: */
> -> 34576 assert((classIndexOf(oop)) > (isForwardedObjectClassIndexPun()));
>    34577 numSlots = byteAt(oop + 7);
>    34578 numBytes = (numSlots == (numSlotsMask())
>    34579 ? ((usqInt) (((usqInt)(((sqInt)((usqInt)((longAt(oop -
> BaseHeaderSize))) << 8)))))) >> 8
>
> --
> Clément Béra
> https://clementbera.github.io/
> https://clementbera.wordpress.com/
>



-- 
_,,,^..^,,,_
best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20180606/805fb7cc/attachment.html>


More information about the Vm-dev mailing list