From: Paul Hilfinger <hilfingr@gnat.com>
To: gdb-patches@sources.redhat.com
Subject: [commit]: Turn on initial Ada support
Date: Sat, 02 Oct 2004 10:00:00 -0000 [thread overview]
Message-ID: <20041002100030.A9241F2E83@nile.gnat.com> (raw)
As promised, I have committed the approved patches to Makefile.in and
symtab.c that turn on initial Ada support in GDB. "Initial" here means
"quite limited for the moment", encompassing mostly expression evaluation.
Now that the process is finally started, we can hope to get the rest of
the AdaCore changes in somewhat more expeditiously.
As indicated in previous mail, this checkin has the side-effect of
requiring flex to build.
Checkins of documentation and NEWS will be occur soon.
P. Hilfinger
2004-10-02 Paul N. Hilfinger <Hilfinger@gnat.com>
Turn on initial Ada support (mainly expression evaluation).
* Makefile.in (SFILES): Remove ada-tasks.c.
(HFILES_NO_SRCDIR): Add ada-lang.h.
(COMMON_OBS): Add ada-lang.o, ada-typeprint.o, ada-valprint.o.
(YYOBJ): Add ada-exp.o.
(rule .l.c): Generalize to not mention ada.
* symtab.c: Include ada-lang.h.
(symbol_natural_name, symbol_demangled_name)
(symbol_search_name): Add Ada case.
Index: gdb/Makefile.in
===================================================================
RCS file: /cvs/src/src/gdb/Makefile.in,v
retrieving revision 1.635
diff -u -p -r1.635 Makefile.in
--- gdb/Makefile.in 1 Oct 2004 17:26:09 -0000 1.635
+++ gdb/Makefile.in 2 Oct 2004 09:12:24 -0000
@@ -510,7 +510,7 @@ TARGET_FLAGS_TO_PASS = \
# Links made at configuration time should not be specified here, since
# SFILES is used in building the distribution archive.
-SFILES = ada-exp.y ada-lang.c ada-typeprint.c ada-valprint.c ada-tasks.c \
+SFILES = ada-exp.y ada-lang.c ada-typeprint.c ada-valprint.c \
ax-general.c ax-gdb.c \
bcache.c \
bfd-target.c \
@@ -848,7 +848,7 @@ HFILES_NO_SRCDIR = bcache.h buildsym.h c
symfile.h symfile-mem.h stabsread.h target.h terminal.h typeprint.h \
xcoffsolib.h \
macrotab.h macroexp.h macroscope.h \
- c-lang.h f-lang.h \
+ ada-lang.h c-lang.h f-lang.h \
jv-lang.h \
m2-lang.h p-lang.h \
complaints.h valprint.h \
@@ -910,7 +910,7 @@ COMMON_OBS = $(DEPFILES) $(YYOBJ) \
dbxread.o coffread.o coff-pe-read.o elfread.o \
dwarfread.o dwarf2read.o mipsread.o stabsread.o corefile.o \
dwarf2expr.o dwarf2loc.o dwarf2-frame.o \
- c-lang.o f-lang.o objc-lang.o \
+ ada-lang.o c-lang.o f-lang.o objc-lang.o \
ui-out.o cli-out.o \
varobj.o wrapper.o \
jv-lang.o jv-valprint.o jv-typeprint.o \
@@ -918,8 +918,8 @@ COMMON_OBS = $(DEPFILES) $(YYOBJ) \
scm-exp.o scm-lang.o scm-valprint.o \
sentinel-frame.o \
complaints.o typeprint.o \
- c-typeprint.o f-typeprint.o m2-typeprint.o \
- c-valprint.o cp-valprint.o f-valprint.o m2-valprint.o \
+ ada-typeprint.o c-typeprint.o f-typeprint.o m2-typeprint.o \
+ ada-valprint.o c-valprint.o cp-valprint.o f-valprint.o m2-valprint.o \
nlmread.o serial.o mdebugread.o top.o utils.o \
ui-file.o \
user-regs.o \
@@ -943,6 +943,7 @@ YYFILES = c-exp.c \
f-exp.c m2-exp.c p-exp.c
YYOBJ = c-exp.o \
objc-exp.o \
+ ada-exp.o \
jv-exp.o \
f-exp.o m2-exp.o p-exp.o
@@ -1585,7 +1586,7 @@ po/$(PACKAGE).pot: force
echo $(FLEX) -Isit $< ">" $@; \
$(FLEX) -Isit $< > $@; \
elif [ ! -f $@ -a ! -f $< ]; then \
- echo "ada-lex.c missing and flex not available."; \
+ echo "$< missing and flex not available."; \
false; \
elif [ ! -f $@ ]; then \
echo "Warning: $*.c older than $*.l and flex not available."; \
Index: gdb/symtab.c
===================================================================
RCS file: /cvs/src/src/gdb/symtab.c,v
retrieving revision 1.139
diff -u -p -r1.139 symtab.c
--- gdb/symtab.c 20 Sep 2004 20:18:39 -0000 1.139
+++ gdb/symtab.c 2 Oct 2004 09:12:24 -0000
@@ -41,6 +41,7 @@
#include "source.h"
#include "filenames.h" /* for FILENAME_CMP */
#include "objc-lang.h"
+#include "ada-lang.h"
#include "hashtab.h"
@@ -634,17 +635,24 @@ symbol_init_demangled_name (struct gener
char *
symbol_natural_name (const struct general_symbol_info *gsymbol)
{
- if ((gsymbol->language == language_cplus
- || gsymbol->language == language_java
- || gsymbol->language == language_objc)
- && (gsymbol->language_specific.cplus_specific.demangled_name != NULL))
+ switch (gsymbol->language)
{
- return gsymbol->language_specific.cplus_specific.demangled_name;
- }
- else
- {
- return gsymbol->name;
+ case language_cplus:
+ case language_java:
+ case language_objc:
+ if (gsymbol->language_specific.cplus_specific.demangled_name != NULL)
+ return gsymbol->language_specific.cplus_specific.demangled_name;
+ break;
+ case language_ada:
+ if (gsymbol->language_specific.cplus_specific.demangled_name != NULL)
+ return gsymbol->language_specific.cplus_specific.demangled_name;
+ else
+ return ada_decode_symbol (gsymbol);
+ break;
+ default:
+ break;
}
+ return gsymbol->name;
}
/* Return the demangled name for a symbol based on the language for
@@ -652,13 +660,24 @@ symbol_natural_name (const struct genera
char *
symbol_demangled_name (struct general_symbol_info *gsymbol)
{
- if (gsymbol->language == language_cplus
- || gsymbol->language == language_java
- || gsymbol->language == language_objc)
- return gsymbol->language_specific.cplus_specific.demangled_name;
-
- else
- return NULL;
+ switch (gsymbol->language)
+ {
+ case language_cplus:
+ case language_java:
+ case language_objc:
+ if (gsymbol->language_specific.cplus_specific.demangled_name != NULL)
+ return gsymbol->language_specific.cplus_specific.demangled_name;
+ break;
+ case language_ada:
+ if (gsymbol->language_specific.cplus_specific.demangled_name != NULL)
+ return gsymbol->language_specific.cplus_specific.demangled_name;
+ else
+ return ada_decode_symbol (gsymbol);
+ break;
+ default:
+ break;
+ }
+ return NULL;
}
/* Return the search name of a symbol---generally the demangled or
@@ -666,7 +685,10 @@ symbol_demangled_name (struct general_sy
If there is no distinct demangled name, then returns the same value
(same pointer) as SYMBOL_LINKAGE_NAME. */
char *symbol_search_name (const struct general_symbol_info *gsymbol) {
- return symbol_natural_name (gsymbol);
+ if (gsymbol->language == language_ada)
+ return gsymbol->name;
+ else
+ return symbol_natural_name (gsymbol);
}
/* Initialize the structure fields to zero values. */
next reply other threads:[~2004-10-02 10:00 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-10-02 10:00 Paul Hilfinger [this message]
2004-10-04 14:00 ` Mark Kettenis
2004-10-04 16:26 ` Joel Brobecker
2004-10-04 18:30 ` Paul Hilfinger
2004-10-04 19:03 ` Mark Kettenis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20041002100030.A9241F2E83@nile.gnat.com \
--to=hilfingr@gnat.com \
--cc=gdb-patches@sources.redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox