diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 62cc127e92..6986d0298c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2013-05-08 Doug Evans + + * psymtab.c (expand_symtabs_matching_via_partial): Fix file name + matching test. + 2013-05-08 Joel Brobecker * sol-thread.c (info_cb): Factorize the code a little. diff --git a/gdb/psymtab.c b/gdb/psymtab.c index 878bd82cc0..3a1b993fa8 100644 --- a/gdb/psymtab.c +++ b/gdb/psymtab.c @@ -1400,15 +1400,21 @@ expand_symtabs_matching_via_partial if (file_matcher) { + int match; + if (ps->anonymous) continue; - /* Before we invoke realpath, which can get expensive when many - files are involved, do a quick comparison of the basenames. */ - if (!(*file_matcher) (ps->filename, data, 0) - && (basenames_may_differ + match = (*file_matcher) (ps->filename, data, 0); + if (!match) + { + /* Before we invoke realpath, which can get expensive when many + files are involved, do a quick comparison of the basenames. */ + if (basenames_may_differ || (*file_matcher) (lbasename (ps->filename), data, 1)) - && !(*file_matcher) (psymtab_to_fullname (ps), data, 0)) + match = (*file_matcher) (psymtab_to_fullname (ps), data, 0); + } + if (!match) continue; }