Tue Aug 24 04:35:37 PDT 2010  Simon Marlow <[email protected]>
  * Remove the debugging memory allocator - valgrind does a better job
  
  I got fed up with the constant bogus output from the debugging memory
  allocator in RtsUtils.c.  One problem is that we allocate memory in
  constructors that then isn't tracked, because the debugging allocator
  hasn't been initialised yet.
  
  The bigger problem is that for a given piece of leaking memory it's
  impossible to find out where it was allocated; however Valgrind gives
  output like this:
  
  ==6967== 8 bytes in 1 blocks are still reachable in loss record 1 of 7
  ==6967==    at 0x4C284A8: malloc (vg_replace_malloc.c:236)
  ==6967==    by 0x4C28522: realloc (vg_replace_malloc.c:525)
  ==6967==    by 0x6745E9: stgReallocBytes (RtsUtils.c:213)
  ==6967==    by 0x68D812: setHeapAlloced (MBlock.c:91)
  ==6967==    by 0x68D8E2: markHeapAlloced (MBlock.c:116)
  ==6967==    by 0x68DB56: getMBlocks (MBlock.c:240)
  ==6967==    by 0x684F55: alloc_mega_group (BlockAlloc.c:305)
  ==6967==    by 0x6850C8: allocGroup (BlockAlloc.c:358)
  ==6967==    by 0x69484F: allocNursery (Storage.c:390)
  ==6967==    by 0x694ABD: allocNurseries (Storage.c:436)
  ==6967==    by 0x6944F2: initStorage (Storage.c:217)
  ==6967==    by 0x673E3C: hs_init (RtsStartup.c:160)
  
  which tells us exactly what the leaking bit of memory is.  So I don't
  think we need our own debugging allocator.

    M ./rts/RtsStartup.c -11
    M ./rts/RtsUtils.c -146

View patch online:
http://darcs.haskell.org/cgi-bin/darcsweb.cgi?r=ghc;a=darcs_commitdiff;h=20100824113537-12142-4252badcdadd66b1b3090544b3134afd615713e2.gz

_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to