This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
RFA/patch stabs reader: Recognize language hint in SO stab
- From: Jason Molenda <jmolenda at apple dot com>
- To: gdb-patches at sources dot redhat dot com
- Cc: Jim Blandy <jimb at redhat dot com>, Mark Kettenis <kettenis at jive dot nl>, Eli Zaretskii <eliz at elta dot co dot il>, Devang Patel <dpatel at apple dot com>
- Date: Thu, 5 Aug 2004 13:09:08 -0700
- Subject: RFA/patch stabs reader: Recognize language hint in SO stab
Hi, this follows up to the note I posted to gdb a couple days ago,
http://sources.redhat.com/ml/gdb/2004-08/msg00015.html
The patch below uses the 'desc' 16-bit field in the SO stab's nlist
record to indicate the language of the compilation unit, akin to the
DW_AT_language DWARF attribute. The Sun compiler has used it like this
for a long time; we even had the language values in
include/aout/stab_gnu.h but they were not used. (I added the Fortran90
value from Mark's e-mail, thanks Mark).
The stabs reader currently checks the filename suffix of the source
file or header files to detect the type of the language. My change
will use the value of the desc field, if present, and will only use the
filename suffix heuristics if no desc field setting has already been
seen.
The most potentially controversial part of this patch, I expect, is
that I needed to add two language codes for languages in use on MacOS X
-- Objective-C and Objective-C++. I don't have a way of communicating
these codes back to Sun, and I don't want to have Sun and gcc using the
same value for different languages, so I added ObjC/ObjC++ up at value
50 (the Sun languages range from 1 to 7). The number 50 was,
obviously, chosen completely at random.
Eli, I added a table documenting these values to stabs.texinfo. Do you
think this is a correct use of a texinfo table? I am not very
experienced with texinfo.
Devang Patel will add the compiler support for this once we get
agreement on the language code values here on the gdb list.
As always, I'm not committed to the particularly names of functions or
method of implementing this -- I'll incorporate any feedback speedily
and re-post.
Thanks!
[include/ChangeLog]
004-08-05 Jason Molenda (jmolenda@apple.com)
* aout/stab_gnu.h: Update N_SO table with FORTRAN90 addition
from
Sun's Stabs Interface Manual (Version 4.0). Add Objective-C and
Objective-C++ non-Sun language codes.
[gdb/ChangeLog]
2004-08-05 Jason Molenda (jmolenda@apple.com)
* dbxread.c (read_so_stab_language_hint): New function.
(read_dbx_symtab): Prefer language from SO stab's desc field
over language based on the suffix of the source filename.
(start_psymtab): Only use the source filename suffix if the
language hasn't been already set.
(process_one_symbol): When expanding psymtab to symtab, use the
desc field to set the language if it contains anything
meaningful.
[gdb/doc/ChangeLog]
2004-08-05 Jason Molenda (jmolenda@apple.com)
* stabs.texinfo (Paths and Names of the Source Files):
Document the
meaning of values in the 'desc' field of a SO stab.
Attachment:
pa.txt
Description: Text document