[PATCH] Fixup convenience variables on endian switch

Daniel Jacobowitz drow@false.org
Thu Nov 17 19:25:00 GMT 2005


On Thu, Nov 17, 2005 at 10:58:51AM -0800, Jim Blandy wrote:
> On 11/17/05, Andrew STUBBS <andrew.stubbs@st.com> wrote:
> > The problem I am actually trying to solve is that we have addresses and
> > such set up by a script that is sourced before the endian of the target
> > they will be used with is known.
> 
> So you only really need to preserve convenience variables whose types
> are builtin types, and don't go away when symbol tables are reloaded. 
> Wouldn't it be simpler just to have clear_internalvars only clear
> variables whose types belong to objfiles?

I think you've switched patches - this is about updating variables on
an endianness switch, not clearing them when we reload.  I think that
one way or another, we ought to preserve the values or discard the
convenience variables; leaving them corrupted fails my "can I explain
this behavior to a user" test.

> Or you could define a hook that runs a user-defined command when the
> architecture changes.  Then your script could define a command that
> sets up your variables, and have GDB run that command when the
> architecture is known.  We'd have to think about the best time to run
> the hook, but I'm sure something reasonable could be worked out.

Just seems nasty.  Why not preserve things that we know how to
preserve, and clear anything we don't?  We know how to preserve
scalars by reading them into a LONGEST, and floats by reading them into
a DOUBLEST.  Structures require complicated recursion and unions are
intractable.

-- 
Daniel Jacobowitz
CodeSourcery, LLC



More information about the Gdb-patches mailing list