[Vm-dev] [Pharo-users] macOS VM builds with AddressSanitizer/LeakSanitizer

Alistair Grant akgrant0710 at gmail.com
Mon Jan 28 18:29:04 UTC 2019


Hi Manuel,

On Mon, 28 Jan 2019 at 11:51, Manuel Leuenberger
<leuenberger at inf.unibe.ch> wrote:
>
> BlExternalForm >> primCreateManualSurfaceWidth: width height: height rowPitch: rowPitch depth: depth isMSB: isMSB
> <primitive: 'primitiveCreateManualSurface' module: 'SqueakFFIPrims'>
> self primitiveFailed
>
> How can I debug this?

My first suggestion would be to see if the primitive is returning a
descriptive error.  The method would become (untested):

BlExternalForm >> primCreateManualSurfaceWidth: width height: height
rowPitch: rowPitch depth: depth isMSB: isMSB
    <primitive: 'primitiveCreateManualSurface' module:
'SqueakFFIPrims' error: error>
    self primitiveFailed

When the primitive fails, open the debugger, inspect this method in
the call stack and check the value of error.  If the primitive hasn't
been found, error will be something like #'not found' (from memory).
If it's something else other than nil, report back with the value.

If error is nil it will be a matter of diving in to the Slang / C code
and figuring it out :-).  If you've successfully built a debug version
of the VM, maybe the easiest next step is to set a breakpoint in
primitiveCreateManualSurface and step through?

Cheers,
Alistair


More information about the Vm-dev mailing list