[Haskell-cafe] mallocForeignPtrArray with check against buffer overflows

David Feuer david.feuer at gmail.com
Thu Apr 26 22:46:29 UTC 2018


I just opened https://ghc.haskell.org/trac/ghc/ticket/15092 to
consider such options.

On Thu, Apr 26, 2018 at 6:30 PM, David Feuer <david.feuer at gmail.com> wrote:
> For debugging, this sounds like overkill to me. Can't you write
> bounds-checking versions of your primitives that are turned on with
> some CPP? Data.HashMap.Array does this sort of thing, although I don't
> think it checks everything it really should. In the back of my mind,
> I've been thinking it would be really nice to be able to tell GHC to
> use checked versions of its primops. That's seems a bit tricky, since
> the SomeException type is at a much higher level, but maybe there's
> some way to make it work.
>
> On Thu, Apr 26, 2018 at 2:50 AM, Henning Thielemann
> <lemming at henning-thielemann.de> wrote:
>>
>> I like to test whether some low-level routines overwrite non-allocated
>> memory area. On the Amiga there was the program Mungwall that surrounded
>> memory blocks with some byte patterns at allocation and checked the
>> integrity of those patterns at deallocation. This would also be possible in
>> Haskell with a modified mallocForeignPtrArray. Has someone already
>> implemented this idea? If yes, how could I easily switch between the
>> mallocForeignPtrArray version with such debugging support and the plain
>> function? It would be unfeasible to re-compile a lot of packages only for
>> debugging. Ideally the test-suite of a package would use the debugging
>> version of mallocForeignPtrArray and the library part would use plain
>> allocation.
>>
>> I thought about using valgrind but I remember this often gave many false
>> positive bug reports for Haskell programs.
>> _______________________________________________
>> Haskell-Cafe mailing list
>> To (un)subscribe, modify options or view archives go to:
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>> Only members subscribed via the mailman list are allowed to post.


More information about the Haskell-Cafe mailing list