[Haskell-cafe] Need help with very simple C++ FFI call
Brandon Allbery
allbery.b at gmail.com
Tue Nov 19 16:43:09 UTC 2013
On Tue, Nov 19, 2013 at 11:31 AM, Thiago Padilha <tpadilha84 at gmail.com>wrote:
> On Tue, Nov 19, 2013 at 1:19 PM, Brandon Allbery <allbery.b at gmail.com>
> wrote:
> > Also note that different memory allocators have different behaviors;
>
> Line 14(which causes the segfault) comment says the HandleScope is
> being allocated on the stack:
>
> // Create a stack-allocated handle scope.
> HandleScope handle_scope(isolate);
>
> I dont know any C++. Is it possible that this line of code is
> allocating something on the heap? If so could ghci have overriden
> memory allocation routines in a way that would mess that allocation?
>
I don't think ghc/ghci overrides malloc() like that. And it is possible
that the constructor, while allocating a stack object, also allocates some
heap-based memory; but that is a detail of the C++ code of the constructor.
That said, I believe g++ uses malloc/free behind the scenes for new/delete
to avoid such conflicts (this is common because it is often necessary to
mix C and C++ code, and it's just bad to have multiple memory allocators
working in the same heap).
(That said, the fact that it uses malloc/free behind the scenes does *not*
guarantee that you can substitute malloc() for new/new[] or free() for
delete/delete[]. But in this case, no C++ allocations should be escaping
the C++ code, so that also should not be relevant.)
It might be a good idea to run the test program under valgrind and see what
it has to say about the problem.
--
brandon s allbery kf8nh sine nomine associates
allbery.b at gmail.com ballbery at sinenomine.net
unix, openafs, kerberos, infrastructure, xmonad http://sinenomine.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20131119/618410d4/attachment.html>
More information about the Haskell-Cafe
mailing list