Thanks, you are absolutely right. There is an offset between the function addresses defined in the link map and the addresses that show up in gdb. I've rolled up my Jump to Conclusions mat.

Rich

Simon Marlow wrote:
Rich Fought wrote:
I'm getting into the weeds of a GHC-compiled program, and need a little help. I'm trying to chase down a memory leak and Valgrind gives me the following:

==24390== 54,844 bytes in 639 blocks are definitely lost in loss record 69 of 69
==24390==    at 0x400446D: malloc (vg_replace_malloc.c:149)
==24390==    by 0x826337E: (within myprog)

 From the link map of my program this address is in the function

GHCziBase_zdszddmmin_info

It's unlikely this is right. This symbol is the code for the function GHC.Base.$s$dmin, which is a specialised version ($s) of the default method ($d) for min, in class Ord. I very much doubt that min calls malloc()!

So it probably means that there are some symbols missing in your program binary. Try asking gdb what lies at that address, maybe?

Cheers,
    Simon




_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to