[Dwarf-Discuss] implementing SFN, support for multiple views per PC

Alexandre Oliva aoliva@redhat.com
Wed Sep 14 00:02:55 GMT 2016

On Sep 13, 2016, Alexandre Oliva <aoliva at redhat.com> wrote:

>> I'm thinking your view numbers might be similar to my logical
>> locations.

> I'm still digesting the information in the proposal and trying to
> confirm they're roughly equivalent, or can be easily made so

Considering they're limited to recommended breakpoints, I can
confidently assert that they serve a significantly different purpose,
and they would somewhat get in the way of the finer-grained view

Consider, for example, that we want to represent in a location list that
an operation that is NOT the recommended breakpoint for any
(file,line,column) triplet modifies a register that used to hold the
value of variable a, and that after the operation holds the value of
variable b.  With logical locations that represent only recommended
breakpoints, location lists that were to refer to logical locations
rather than PCs would not be able to represent that.

Conversely, if location lists were to still refer to PCs rather than
logical locations, we'd still be unable to represent in location lists
the virtual advance from one line to another, since there isn't a
different address to associate with the different location bindings.

Another concern in my mind is the backward-compatibility of the new
table.  I'm very concerned about the disruption of the new split line
number programs to existing debug information consumers; I'd much rather
have something that extends existing information without breaking
existing tools, enabling progressive adoption rather than flag days.
But that's just me :-)

I guess I'm also missing the motivation for all this disruption.  I
mean, I like the addition of context and subprogram, but I don't see why
not add them as an extension to the exisiting line number program.  I
understand the argument about simplifying backtraces, but it seems to me
that just having (back?)pointers from line number table to DIEs would
accomplish a lot; I'm having a hard time believing that processing a
somewhat smaller line number program even saves much in this case, since
the odds that the points of the backtrace will coincide with the
recommended breakpoints in the logical line table are pretty low.  What
am I missing something?

Alexandre Oliva, freedom fighter    http://FSFLA.org/~lxoliva/
You must be the change you wish to see in the world. -- Gandhi
Be Free! -- http://FSFLA.org/   FSF Latin America board member
Free Software Evangelist|Red Hat Brasil GNU Toolchain Engineer

More information about the Dwarf-discuss mailing list