[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