bitwise operations on registers

Andrew Cagney ac131313@cygnus.com
Mon Mar 11 07:35:00 GMT 2002


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

Andrew





More information about the Gdb mailing list