bitwise operations on registers
Daniel Jacobowitz
drow@mvista.com
Mon Mar 11 07:39:00 GMT 2002
On Mon, Mar 11, 2002 at 10:35:11AM -0500, Andrew Cagney wrote:
> >On Sun, 10 Mar 2002, Andrew Morton wrote:
> >
> >
> >>(gdb) p $esp & 4
> >>Argument to arithmetic operation not a number or boolean.
> >>(gdb)
> >>
> >>I don't seem to be able to perform the `&' and `|' arithmetic
> >>operators against machine registers.
> >
> >
> >"p $eax & 4" works for me. Doesn't it work for you?
> >
> >As for $esp, I think GDB knows that it's not a number, so try
> >
> > (gdb) p (int)$esp & 4
> >
> >(I don't know whether the built-in knowledge GDB has about $esp should
> >prevent it from working without the cast, though.)
>
> Yes, try:
> (gdb) p (void*)0 & 4
> So, this a bug?
I think so. C won't let you do it either, but historically we've been
more permissive than C about things that have a clearly defined
meaning, and this does.
--
Daniel Jacobowitz Carnegie Mellon University
MontaVista Software Debian GNU/Linux Developer
More information about the Gdb
mailing list