This is the mail archive of the gdb-patches@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: about current_gdbarch


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
>
>
>
>


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