Re: [PATCH v4] gdb/manual: Introduce location specs

Eli Zaretskii via Gdb-patches
2022-05-27T15:52:26Z

> Date: Fri, 27 May 2022 16:04:32 +0100
> Cc: gdb-patches@sourceware.org
> From: Pedro Alves <pedro@palves.net>
>
> > > +A concrete code location in your program is uniquely identifiable by a
> > > +set of logical attributes. Typically, a line number, the source file
> > > +the line belongs to, the fully-qualified and prototyped function it is
> > > +defined in, and an instruction address. Because each inferior has its
> > > +own address space, also an inferior number.
> >
> > The "typically" part and the overall style seem to say that this is
> > not the exhaustive list of all the attributes of a code location, just
> > a general idea. Can you please present a full exhaustive list of the
> > attributes of a code location?
>
> I meant to remove the "typically", and forgot it, sorry. It is not
> supposed to be there.

OK, so I take it the full list is:

. absolute file name of the source
. line number in the source file
. fully-qualified and prototyped function
. address
. inferior number

> > And another question: does the process of resolving a location spec to
> > obtain the corresponding code locations involve only filling in of the
> > attributes that were omitted from the spec, or does it also produce
> > attributes that can _never_ be part of the location spec? IOW, can
> > the user type a location spec which will yield a code location that is
> > 100% identical to the input spec?
>
> Currently there's no way to explicitly specify the inferior with
> any format of location specifications. So if you do "b func", and you
> have multiple inferiors, GDB will find code locations for "func" in all
> the inferiors. All the other attributes you can explicitly specify.
> Not sure whether that answers your question.

I think it does, but:

> I am not sure what you
> mean by "100% identical". A spec can never the identical to the actual
> thing, the same way a cake recipe can never be identical to a cake, for
> they are things of different nature. It can only be that the actual
> thing complies with or follows the spec.

I thought you just explained above that, when there's only one
inferior, the user can give a location spec which will resolve to a
code location that has exactly the same attributes as the spec? IOW,
in this case the "resolution" of the spec produces a "thing" that to
the user looks exactly the same as the input spec?