This is the mail archive of the elfutils-devel@sourceware.org mailing list for the elfutils 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: supporting DW_OP_{implicit,stack}_value


>>>>> "Roland" == Roland McGrath <roland@redhat.com> writes:

Mark> I couldn't find a definition for DW_OP_GNU_uninit. What does it
Mark> express?

Roland> Yeah, good question.  It's no my list to take it up on archer
Roland> and/or gcc lists to get a good specification for it.  It seems
Roland> to be a not-really-used feature that perhaps was never thought
Roland> out or discussed very thoroughly.

Indeed.  I was wondering about it, too.  I ran across it while looking
at really implementing DW_OP_piece; the implementation of
DW_OP_GNU_uninit in gdb is weird.

I tracked down the original patches:

http://gcc.gnu.org/ml/gcc-patches/2007-05/msg00068.html
http://sourceware.org/ml/gdb-patches/2007-05/msg00024.html

Rationale for the behavior is here:

http://gcc.gnu.org/ml/gcc-patches/2007-05/msg00666.html

Rationale for the choice of how it should not interact with the piece
stuff is here:

http://sourceware.org/ml/gdb-patches/2007-05/msg00146.html

(This bit in particular I find very lame.)

Roland> The only use for the location-with-uninit I can really see is so
Roland> the debugger can install a watchpoint that the initializer is
Roland> expected to hit.

One other case I thought of is that with this feature, a user can still
assign to an uninitialized variable.  So, printing will show that it is
bogus, but you could then fix the problem and continue.

I think it would be straightforward to extend the definition so that it
does apply to the current piece.  This seems like the only sane
specification to me.

Tom

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