[RFA/RFC] mips tracepoint: fix Bug 12013

Kevin Buettner kevinb@redhat.com
Wed Dec 22 16:20:00 GMT 2010


On Wed, 22 Dec 2010 15:12:22 +0800
Hui Zhu <teawater@gmail.com> wrote:

> > You might consider implementing a new gdbarch method which provides a
> > mapping from pseudo register numbers to raw register numbers. __The
> > trace machinery could use such a mapping to find the corresponding raw
> > register(s) when presented with a pseudo register. __I can think of
> > several potential pitfalls with this approach, but I think the idea is
> > worth exploring.
>
> Thanks Kevin.  I will do it.

Please look at Pedro's reply.  He has outlined a better approach.

> And I make a patch to add some comments from your mail to mips_register_name.
> Wish it can help other people.
> 
> Please help me review it.

Okay, see below...

> 2010-12-22  Hui Zhu  <teawater@gmail.com>
> 
> 	* mips-tedp.c (mips_register_name): Add comments.
> 
> ---
>  mips-tdep.c |    7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> --- a/mips-tdep.c
> +++ b/mips-tdep.c
> @@ -454,7 +454,12 @@ mips_register_name (struct gdbarch *gdba
>    enum mips_abi abi = mips_abi (gdbarch);
> 
>    /* Map [gdbarch_num_regs .. 2*gdbarch_num_regs) onto the raw registers,
> -     but then don't make the raw register names visible.  */
> +     but then don't make the raw register names visible.
> +     Because It is possible to debug a 64-bit device using a 32-bit programming
> +     model.  In such instances, the raw registers are configured to be
> +     64-bits wide, while the pseudo registers are configured to be 32-bits
> +     wide.  The registers that the user sees - the pseudo registers - match
> +     the user's expectations given the programming model being used.  */

Could you revise the comment to read as follows?

    /* Map [gdbarch_num_regs .. 2*gdbarch_num_regs) onto the raw registers,
       but do not make the raw register names visible.  This (upper)
       range of user visible register numbers are the
       pseudo-registers.
       
       This approach was adopted accomodate the following scenario: 
       It is possible to debug a 64-bit device using a 32-bit
       programming model.  In such instances, the raw registers are
       configured to be 64-bits wide, while the pseudo registers are
       configured to be 32-bits wide.  The reigsters that the user
       sees - the pseudo registers - match the users expectations
       given the programming model being used.  */

Please allow several days for others to tweak my suggested wording.  If
there are no further comments on the above wording, feel free to commit
it.

Thanks,

Kevin



More information about the Gdb-patches mailing list