Index: gdb/symtab.c =================================================================== RCS file: /cvs/src/src/gdb/symtab.c,v retrieving revision 1.208 diff -u -r1.208 symtab.c --- gdb/symtab.c 23 May 2009 10:11:42 -0000 1.208 +++ gdb/symtab.c 24 May 2009 10:24:13 -0000 @@ -2408,9 +2408,19 @@ else best = 0; + /* Get symbol full file name if possible */ + symtab_to_fullname (symtab); + ALL_PSYMTABS (objfile, p) { - if (strcmp (symtab->filename, p->filename) != 0) + const char *fullname; + + if (symtab->fullname && (fullname = psymtab_to_fullname (p))) + { + if (FILENAME_CMP (symtab->fullname, fullname) != 0) + continue; + } + else if (FILENAME_CMP (symtab->filename, p->filename) != 0) continue; PSYMTAB_TO_SYMTAB (p); } @@ -2419,8 +2429,14 @@ { struct linetable *l; int ind; + const char *fullname; - if (strcmp (symtab->filename, s->filename) != 0) + if (symtab->fullname && (fullname = symtab_to_fullname (s))) + { + if (FILENAME_CMP (symtab->fullname, fullname) != 0) + continue; + } + else if (FILENAME_CMP (symtab->filename, s->filename) != 0) continue; l = LINETABLE (s); ind = find_line_common (l, line, &exact);