Subject: Re: gcc Q - a bit off topic
To: Bill Studenmund <skippy@macro.stanford.edu>
From: Andrew Brown <codewarrior@daemon.org>
List: current-users
Date: 10/21/1997 23:08:06
>I'm trying to debug some reference-keeping code I've added to the kernel.
>I've got an addref and a delref function. When the ref count goes to 0,
>the object gets deleted.
yay!
>Unfortunatly I've got a leak. I add a reference which doesn't get deleted.
i could see that one coming a mile away. is it a reference to itself?
there's an ai koan about this...
>I want to turn the call to the addref and delref functions into macros,
>and print out what source file they were called from. Does anyone know how
>to do this? I.E. is there a variable in gcc which is the name of the
>source file being compiled? Or anything else which would help?
i use the following pre-processor tokens, as per ansi x3.159-1989 (or
there abouts :), section a 12.10:
__LINE__ a decimal constant containing the current source line
number.
__FILE__ a string literal containing the name of the file being
compiled.
__DATE__ a string literal containing the date of compilation, in the
form "Mmm dd yyyy".
__TIME__ a string literal..., in the form "hh:mm:ss".
and i use them in macro wrappers to functions all the time, although i
discovered them quite more accidentally. i didn't actually look
(although i know where they are) i just said "wouldn't it be nice if
this worked" and it did.
>The calls happen as part of normal kernel life, so I'd rather not have to
>go through the debugger and manually do a back trace & a continue for each
>one.
no, of course not. :)
--
|-----< "CODE WARRIOR" >-----|
andrew@echonyc.com (TheMan) * "ah! i see you have the internet
codewarrior@daemon.org that goes *ping*!"
warfare@graffiti.com * "information is power -- share the wealth."