FW: Targeting dual Harvard architectures

Andrew Cagney ac131313@redhat.com
Wed Oct 29 16:59:00 GMT 2003


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




More information about the Gdb mailing list