[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.
This commit is contained in:
Joel Brobecker 2012-10-24 18:17:22 +00:00
parent d99dcf51e1
commit f69c91ad24
2 changed files with 7 additions and 1 deletions

View File

@ -1,3 +1,9 @@
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.

View File

@ -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))