digitalmars.D - full allocation debugging for GC logger
Alan Knowles <alan akbkhome.com> writes:
This may be useful for anyone wanting to debug memory leaks. http://www.akbkhome.com/svn/D_Stuff/gcx.d It's basically a large addition to the logger code, so that it can find out the calling location that tried to allocate memory, stores this in the Log.file item. Then when you do a genCollect/fullCollect - it lists where memory was allocated that can not be free'd yet. Code changes are public domain - so walter is free to add what he thinks is a good idea.... (note I had to use the demangle code from gdb, as I think calling std.demangle would affect the pool...) for Freebsd/gcc - you need to compile with the options: gcc -Wl,-export-dynamic -lexecinfo ....... Regards Alan Example output: +log_collect(Mailer.smtpdthread.SmtpdThread.run():122) size = 8, parent = 80fc000 - Mailer.lib.tls.Tls._ctor():34 size = 64, parent = bfbfe488 - Mailer.lib.tls.Tls._ctor():34 size = 24, parent = 285aff80 - Mailer.config.Config.getListenTo():393 size = 5, parent = bfbfe488 - Mailer.config.Config.getListenTo():432 size = 24, parent = bfbfe488 - Mailer.config.Config.getListenTo():393 size = 104, parent = bfaed8c8 - Mailer.main.MailerRun():167 size = 16, parent = bfaed8c8 - Mailer.listenthread.ListenThread.bindSocket():55 size = 5, parent = bfbfe488 - Mailer.main.MailerRun():208 size = 104, parent = bfbfe488 - Mailer.main.MailerRun():167 ....
Sep 03 2008
"Vladimir Panteleev" <thecybershadow gmail.com> writes:
On Wed, 03 Sep 2008 11:29:29 +0300, Alan Knowles <alan akbkhome.com> wrote:This may be useful for anyone wanting to debug memory leaks.
I started writing a memory debugger framework, but didn't get around to finishing it yet. It's working and useable, but doesn't have any documentation and some more features I'd like to add. You can check out the code here: http://dsource.org/projects/diamond/browser/trunk -- Best regards, Vladimir mailto:thecybershadow gmail.com
Sep 03 2008