On Thu, 2 Nov 1995, Mark Devlin wrote:
> gdb (and other source-level debuggers) get the info about variables from
> the symbol table in the executable. When you compile with debug info,
> one of the things the compiler does is store the file and line number of a
> variable/function so the debugger could find it easily. Note that this
> is what the _compiler_ does, NOT the preprocessor (which deals with the
> #defines, #includes, etc before the compiler even sees them). The
> preprocessor would need to be modified to pass the macros on to the
> compiler, which would need to be changed to deal with it. Too much
> hassle for too little benefit.
>
> The alternative? If you're using an ANSI C compiler (which I'm pretty
> sure you have to be to be compiling Circle, if I remember correctly), use
> things like:
> const int MAX_RACES = 6;
>
> Some compilers will allocate memory for a variable, others will
> just insert the value just as the preprocessor does with #defines.
> However, most (if not all) debuggers will be able to evaluate
> "MAX_RACES".
>
> Another alternative that will work (I think) is to use enums:
> enum { MAX_RACES = 6 };
>
Thanks for the info Mark, but the part that got clipped (the original
mail by me) was using an example of GET_STR(ch) which is in actuality . .
#define GET_STR(ch) ((ch)->aff_abils.str)
There's no real way to sub a const declaration for this, now, is there?
Trey
This archive was generated by hypermail 2b30 : 12/07/00 PST