This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: RFC: extend symtabs_from_filename skipping for C++
- From: Joel Brobecker <brobecker at adacore dot com>
- To: Tom Tromey <tromey at redhat dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Wed, 8 Feb 2012 14:05:43 -0800
- Subject: Re: RFC: extend symtabs_from_filename skipping for C++
- References: <m3aa4taxyg.fsf@fleche.redhat.com>
> 2012-02-08 Tom Tromey <tromey@redhat.com>
>
> * linespec.c (decode_line_internal): Skip symtabs_from_filename
> when we have a C++ qualified name.
FWIW, I don't see a problem with this enhancement.
> diff --git a/gdb/linespec.c b/gdb/linespec.c
> index da88d17..3f53b8e 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[1] != ':')
> {
> TRY_CATCH (file_exception, RETURN_MASK_ERROR)
> {
--
Joel