This is the mail archive of the gdb@sources.redhat.com 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: FW: Targeting dual Harvard architectures


"Ken Dyck" <Ken.Dyck@dspfactory.com> writes:

1. Is it possible to modify gdb to support architectures with multiple
memory spaces in a "user friendly" way (where "user friendly" is
something like what David Taylor described in
http://sources.redhat.com/ml/gdb/2001-02/msg00090.html)? So far my
impression is yes.


Yes --- with the understanding that it's restricted to just distinct
code and data spaces at the moment --- you can say:

  x/i (@code char *) 0x1234
  x/i (@data char *) 0x1234

and it'll do the right thing, if you define the ADDRESS_TO_POINTER and
POINTER_TO_ADDRESS methods appropriately.

(Hey, this isn't in the GDB manual anywhere!)

But you've actually got a case where this needs to be extended to
support an arbitrary set of architecture-defined spaces, which the
current code does not support.  If I recall correctly, this was
discussed when the current @code and @data support went in, but it was
left as a future extension, since we didn't know of any architectures
that actually wanted it.  Now we do.

Yep. The original patch was integrated with the understanding that the hard-wired "code" and "data" namespaces would eventually be replaced with a generic address space naming mechanism (ex, 86 and @code @data @stack and @io).


For a broad idea of how it can be implemented, look at reggroups (and maint print register-groups). It lets an architecture define an arbitrary number of register groupings.

Andrew



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