This is the mail archive of the gdb-patches@sourceware.org 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]

Re: stabs.texinfo update for macro define/undefine


David Taylor <dtaylor@emc.com> writes:
>> From: Jim Blandy <jimb@codesourcery.com>
>> Date: Tue, 31 Oct 2006 15:23:29 -0800
>> 
>> It's clear from the example, but it would be nice if the text
>> explicitly explained how function-like macro arguments appear in the
>> N_MAC_DEFINE stabs.  It also should explain how the following are
>> distinguished:
>> 
>> #define foo x
>> #define foo() x
>> 
>> With the latter #definition, 'foo' followed by something other than an
>> opening parenthesis isn't replaced.
>
> The former shows up as "foo x", the latter as "foo() x".
>
> Yes, the example could be enhanced to illustrate that.  And a little
> more about the ``transformation'' from what is found in the *.c file
> to the stabs entry.
>
> But, as to the latter -- am I misunderstanding you?  Are you asking
> for text about when something is replaced versus when it isn't
> replaced?  If yes, that is *WAY* beyond the scope of the file.  The
> file deals exclusively with *STABS*.  When something is replaced vs
> not replaced is a CPP issue.  It has nothing to do with STABS.

No, of course not --- we both agree that your text only needs to
describe how to convey all the possible sorts of preprocessor macro
definitions accurately from the compiler to the debugger in STABS.  I
just had two points:

- I think the text ought to actually state all the rules needed to do
  the job correctly, and not leave details to examples.

- There are some cases your examples didn't cover.  (Of course, what's
  a separate case and what's just a specialization of a more general
  thing is sort of a matter of taste.  But it was something I remember
  running into when I did the existing DWARF macro code, so I thought
  I'd mention it.)


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