This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: bitwise operations on registers


Andrew,

Sounds like a bug report is in order (http://sources.redhat.com/gdb/bugs)

Andrew

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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]