This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFA: implement ambiguous linespec proposal


>>>>> "Doug" == Doug Evans <dje@google.com> writes:

Doug> Another question while we're cleaning up linespecs, if I may.
Doug> The docs have this:

Doug> @item '@var{filename}'::@var{funcaddr}
Doug> Like @var{funcaddr} above, but also specifies the name of the source
Doug> file explicitly.  This is useful if the name of the function does not
Doug> specify the function unambiguously, e.g., if there are several
Doug> functions with identical names in different source files.

Doug> Is the double colon, ::, a typo?  I've only ever seen filename
Doug> delimited with a single colon.

This form is only valid for expressions, that is, if you type

    break *'file.c'::function

This is a syntax extension that gdb provides.  See the 'block'
production in c-exp.y.

Doug> I'm hoping we can trivially decide that a file name is present by
Doug> seeing a single colon.

In general I agree, but there are some corner cases to consider.

There's the easy(-ish) corner case of DOS file names:

    break c:/file.c:function

There's also an Objective C case where a trailing ":" is part of the
function name.  I forget the exact syntax, maybe it can only appear in
brackets:

    break +[method:]

Anyway, like I said in the previous thread, in my view, gdb should
require quoting for all unusual file names.  We should try to be
compatible, but we don't have to try too awfully hard, since a lot of
things never worked anyway.

Tom


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]