who can explain the pseudo-registers and its mechanism to me?thanks

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

who can explain the pseudo-registers and its mechanism to me?thanks

liuyang
hello,
     I am puzzled by the the pseudo-registers and its mechanism when I read the gdb source.It is not described in gdbint.who can explain the pseudo-registers and its mechanism to me?thanks.

regards

        liuyang
        [hidden email]
          2005-11-03



Reply | Threaded
Open this post in threaded view
|

Re: who can explain the pseudo-registers and its mechanism to me?thanks

Michael Snyder
"ayang" <mysea000 at 163 dot com> wrote:
 > hello,
 >      I am puzzled by the the pseudo-registers and its mechanism when
I > read the gdb source.It is not described in gdbint.who can explain
the > pseudo-registers and its mechanism to me?thanks.

Pseudo-registers are fake registers that do not exist
(at least as represented) on the target.  The basic distinction
is that gdb fetches the values of "real" registers from the
target, but computes or composes the values of "pseudo" registers
locally.  An example might be a double-wide pseudo-register
that is composed from the values of two ordinary registers.
GDB fetches the values of the two ordinary registers, but
then combines them to produce the value of the pseudo-register.

If a user changes the value of the pseudo-register, it may
be necessary for gdb to change the target values from which
the pseudo-register was composed.
Reply | Threaded
Open this post in threaded view
|

Re: who can explain the pseudo-registers and its mechanism to me?thanks

Wu Zhou
On Fri, 4 Nov 2005, Michael Snyder wrote:

> "ayang" <mysea000 at 163 dot com> wrote:
> > hello,
> >      I am puzzled by the the pseudo-registers and its mechanism when I >
> read the gdb source.It is not described in gdbint.who can explain the >
> pseudo-registers and its mechanism to me?thanks.
>
> Pseudo-registers are fake registers that do not exist
> (at least as represented) on the target.  The basic distinction
> is that gdb fetches the values of "real" registers from the
> target, but computes or composes the values of "pseudo" registers
> locally.  An example might be a double-wide pseudo-register
> that is composed from the values of two ordinary registers.
> GDB fetches the values of the two ordinary registers, but
> then combines them to produce the value of the pseudo-register.
>
> If a user changes the value of the pseudo-register, it may
> be necessary for gdb to change the target values from which
> the pseudo-register was composed.
>

Good explanation.  At least for me. :-) Maybe this can get into <<GDB
internal>>?

Just my two cents anyway.

Regards
- Wu Zhou