diff options
author | Jan Kratochvil <jan.kratochvil@redhat.com> | 2013-02-03 16:20:20 +0000 |
---|---|---|
committer | Jan Kratochvil <jan.kratochvil@redhat.com> | 2013-02-03 16:20:20 +0000 |
commit | fbd9ab743390e50f3f829f4d634deb931cc2b819 (patch) | |
tree | 0cc29024ce3314c46ba19bed5702e4f86ab6f0c8 /gdb/dwarf2read.c | |
parent | 56d397a3824d826cdbaa02dba633bd86da6308c5 (diff) | |
download | gdb-fbd9ab743390e50f3f829f4d634deb931cc2b819.zip gdb-fbd9ab743390e50f3f829f4d634deb931cc2b819.tar.gz gdb-fbd9ab743390e50f3f829f4d634deb931cc2b819.tar.bz2 |
gdb/
* dwarf2read.c (dw2_expand_symtabs_matching): Add basenames parameter
to the file_matcher parameter. Pass 0 to it.
(dwarf2_create_include_psymtab): Copy also DIRNAME.
* psymtab.c (partial_map_symtabs_matching_filename): Drop handling of
NULL psymtab_to_fullname result.
(psymtab_to_fullname): Remove variable r. Never return NULL, assemble
an expected filename instead.
(expand_symtabs_matching_via_partial): Add basenames parameter to the
file_matcher parameter. Call also psymtab_to_fullname, after newly
considering BASENAMES_MAY_DIFFER.
* source.c (rewrite_source_path): Remove static.
* source.h (rewrite_source_path): New declaration.
* symfile.h (struct quick_symbol_functions): Add basenames parameter to
the expand_symtabs_matching field. Comment it.
* symtab.c (file_matches): New function comment. Add parameter
basenames, implement it.
(search_symbols_file_matches): Add basenames parameter. Update the
file_matches caller.
(search_symbols): Match FILES also against symtab_to_fullname.
Optimize it for BASENAMES_MAY_DIFFER.
gdb/testsuite/
* gdb.base/fullpath-expand-func.c: New file.
* gdb.base/fullpath-expand.c: New file.
* gdb.base/fullpath-expand.exp: New file.
* gdb.base/realname-expand-real.c: New file.
* gdb.base/realname-expand.c: New file.
* gdb.base/realname-expand.exp: New file.
Diffstat (limited to 'gdb/dwarf2read.c')
-rw-r--r-- | gdb/dwarf2read.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index 0a3a977..9e8c01b 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -3473,7 +3473,7 @@ dw2_map_matching_symbols (const char * name, domain_enum namespace, static void dw2_expand_symtabs_matching (struct objfile *objfile, - int (*file_matcher) (const char *, void *), + int (*file_matcher) (const char *, void *, int basenames), int (*name_matcher) (const char *, void *), enum search_domain kind, void *data) @@ -3533,7 +3533,7 @@ dw2_expand_symtabs_matching for (j = 0; j < file_data->num_file_names; ++j) { - if (file_matcher (file_data->file_names[j], data)) + if (file_matcher (file_data->file_names[j], data, 0)) { per_cu->v.quick->mark = 1; break; @@ -4054,6 +4054,12 @@ dwarf2_create_include_psymtab (char *name, struct partial_symtab *pst, { struct partial_symtab *subpst = allocate_psymtab (name, objfile); + if (!IS_ABSOLUTE_PATH (subpst->filename)) + { + /* It shares objfile->objfile_obstack. */ + subpst->dirname = pst->dirname; + } + subpst->section_offsets = pst->section_offsets; subpst->textlow = 0; subpst->texthigh = 0; |