This is the mail archive of the gdb@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: store.exp failure on i686-linux with newer gcc's


On Fri, Sep 04, 2009 at 03:23:14PM -0600, Tom Tromey wrote:
> >>>>> "Nathan" == Nathan Froyd <froydnj@codesourcery.com> writes:
> 
> I've been thinking about this patch more and I have one more question.
> 
> Nathan> +	  struct gdbarch *arch = get_frame_arch (frame);
> 
> Nathan> +      struct frame_id frame_id = get_frame_id (frame);
> Nathan> +
> Nathan> +      c = allocate_piece_closure (ctx->num_pieces, ctx->pieces);
> Nathan> +      retval = allocate_computed_value (SYMBOL_TYPE (var),
> Nathan> +					&pieced_value_funcs,
> Nathan> +					c);
> Nathan> +      VALUE_FRAME_ID (retval) = frame_id;
> 
> 
> My understanding is that we can evaluate dwarf expressions that do not
> need a frame.  Will this code do the right thing in that situation?

I *think* so - the frame ID would only be consulted if there were
registers.  I assume we can't get here when the inferior is not
running, since we're passed a frame.  Or is that overly optimistic?

> I am not sure how to construct a situation like that.  Maybe someone
> else knows.

I don't know how to make GCC do it, but SRA or struct-reorg on a
global variable could do that.

-- 
Daniel Jacobowitz
CodeSourcery


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