[ale] C++ Debuggery and the Path of Destruction
John Mills
johnmills at speakeasy.net
Sat Sep 25 09:37:58 EDT 2004
All -
Thanks for the help. I think I have enough guidance to rework my code,
instrument it to see what's going on, and minimize the chance of doing
this again.
On Sat, 25 Sep 2004, Geoffrey wrote:
> Bjorn Dittmer-Roche wrote:
> > On Fri, 24 Sep 2004, Barry Rountree wrote:
...
> >> __FILE__::__LINE__ is now creating a __WHATEVER__, address 0xabcddcab
> >> __FILE__::__LINE__ is now deleting a __WHATEVER__, address 0xabcddcab
...
> Excellent points both. What we used to do when we were oft times
> allocating memory in many section of code is add some #ifdefs to track
> allocation and freeing. Start the output with the memory address so
> that one can simply pipe the output to sort and should see matching
> allocations/frees:
>
> 804845c : allocated, foo.c(345)
> 804845c : freed, foo.c(345)
I might name the specific function, as line numbers change freely.
> The form is:
> address : [allocated|freed], __FILE__(__LINE__)
> We used #ifdef because we learned that about the time you had it all
> figured out and removed the debug code, you started having another
> memory leak. :)
Yes - I already have a couple of symbols to selectively print debug data
for different functions of the code.
Again, thanks to all contributors.
- John Mills
john.m.mills at alum.mit.edu
More information about the Ale
mailing list