This is the mail archive of the mailing list for the GDB project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

How much should I cleanup?

When is it important to make sure that I have cleanups in place?  My
understanding is that it's important if I have control of a block of
memory that I want to xfree() after doing some work, but where that
xfree() might not be reached because of exceptional circumstances.

So, if that's correct: what are 'exceptional circumstances'?  I assume
error() and related functions count.  I don't know exactly what QUIT
does; do I have to be careful if there are QUIT's in between the
xmalloc() and the xfree()?  (Are those the only places where GDB pays
attention to ^C's?)  Any other situations?

Sigh.  C has its benefits, but ease of memory management isn't one of
them.  Every time I have to write a cleanup function, every time I
have to think about whether to alloca() memory for a string or to
xmalloc() it (and every time I can't alloca() it because I'm returning
the string in question), I get another grey hair.  (Though the grey
hair falls out soon thereafter, for better or for worse.)

David Carlton

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]