This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[commit/Ada] use lbasename when testing if file is part of Ada runtime.
- From: Joel Brobecker <brobecker at adacore dot com>
- To: gdb-patches at sourceware dot org
- Cc: Joel Brobecker <brobecker at adacore dot com>
- Date: Wed, 24 Oct 2012 14:18:00 -0400
- Subject: [commit/Ada] use lbasename when testing if file is part of Ada runtime.
We use a list of regular expressions to match a symtab filenames
against the names of the files in the Ada runtime. These regular
expressions do assume that the filename is a basename, however.
So make sure to evaluate these regular expressions against
the symtab's filename.
Without this patch, we run into problems when the Ada runtime was built
using a project file (through gprbuild).
gdb/ChangeLog:
* ada-lang.c (is_known_support_routine): Use lbasename when
matching the symtab's filename against
known_runtime_file_name_patterns.
Tested on x86_64-linux. Checked in.
---
gdb/ChangeLog | 6 ++++++
gdb/ada-lang.c | 2 +-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 55ad4d9..a4dd74e 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,11 @@
2012-10-24 Joel Brobecker <brobecker@adacore.com>
+ * ada-lang.c (is_known_support_routine): Use lbasename when
+ matching the symtab's filename against
+ known_runtime_file_name_patterns.
+
+2012-10-24 Joel Brobecker <brobecker@adacore.com>
+
* ada-lang.c (ada_same_array_size_p): New function.
(ada_promote_array_of_integrals): New function.
(coerce_for_assign): Add handling of arrays where the elements
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index edef6bd..2dde814 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -10973,7 +10973,7 @@ is_known_support_routine (struct frame_info *frame)
for (i = 0; known_runtime_file_name_patterns[i] != NULL; i += 1)
{
re_comp (known_runtime_file_name_patterns[i]);
- if (re_exec (sal.symtab->filename))
+ if (re_exec (lbasename (sal.symtab->filename)))
return 1;
if (sal.symtab->objfile != NULL
&& re_exec (sal.symtab->objfile->name))
--
1.7.9.5