From: Tom Tromey Date: Fri, 10 Feb 2012 17:31:34 +0000 (+0000) Subject: * linespec.c (decode_line_internal): Skip symtabs_from_filename X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ff3c9849a7e7bb050e555e5185307cc585874008;p=binutils-gdb.git * linespec.c (decode_line_internal): Skip symtabs_from_filename when we have a C++ qualified name. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 41c32b9671a..8467263e1ad 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2012-02-10 Tom Tromey + + * linespec.c (decode_line_internal): Skip symtabs_from_filename + when we have a C++ qualified name. + 2012-02-10 Pedro Alves * inferior.c (inferior_pid_to_str): New. diff --git a/gdb/linespec.c b/gdb/linespec.c index 109c7d2157c..94e8ef687d2 100644 --- a/gdb/linespec.c +++ b/gdb/linespec.c @@ -912,9 +912,11 @@ decode_line_internal (struct linespec_state *self, char **argptr) /* First things first: if ARGPTR starts with a filename, get its symtab and strip the filename from ARGPTR. Avoid calling symtab_from_filename if we know can, - it can be expensive. */ + it can be expensive. We know we can avoid the call if we see a + single word (e.g., "break NAME") or if we see a qualified C++ + name ("break QUAL::NAME"). */ - if (*p != '\0') + if (*p != '\0' && !(p[0] == ':' && p[1] == ':')) { TRY_CATCH (file_exception, RETURN_MASK_ERROR) {