about current_gdbarch

Tea teawater@gmail.com
Tue Apr 22 05:16:00 GMT 2008


I see. Thank you Michael. :)

teawater

On Tue, Apr 22, 2008 at 2:19 AM, Michael Snyder <msnyder@specifix.com> wrote:
>
> On Mon, 2008-04-21 at 17:59 +0800, Tea wrote:
>  > Hi Thiago,
>  >
>  > In your mail, you want me remove the "current_gdbarch" from my patch.
>  > But it's so hard to me.
>  > Because most of "current_gdbarch" is used in function "record_message"
>  > and sub-function of it(such as i386_record and mips_record).
>  > "record_message" will be called by function "resume" that use a lot of
>  > "current_gdbarch" in it. So I think get current gdbarch without
>  > "current_gdbarch" is so hard.
>  >
>  > Could you please help me about it? Or let me keep "current_gdbarch" in
>  > current time. Maybe I can remove it in the future.
>
>  gdbarch is a data structure that's meant to be passed around
>  as a token to the various functions that will use it.  It's
>  a relatively new interface (though it's been in place for a
>  number of years now).
>
>  "current_gdbarch" is a cheat -- a global constant -- that
>  we have allowed ourselves to use while we transition various
>  parts of gdb into using the gdbarch interface.
>
>  I think what you are being encouraged to do is, rather than
>  just using the global constant whenever you need it, start
>  at highest possible level of calling into your code (eg.
>  "record_message" in infrun.c) and pass in a pointer to
>  current_gdbarch (assuming an actual gdbarch pointer is not
>  available).  Then let the rest of your code pass that pointer
>  around, and use it instead of using the global.
>
>  That way, eventually, we only have one reference to the
>  global "current_gdbarch" to get rid of, instead of many.
>
>  Michael
>
>
>
>



More information about the Gdb-patches mailing list