I'm sure I'm doing something silly. (gdb) p $esp + 4 $15 = (void *) 0xca9c3ea4 (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. GNU gdb Red Hat Linux (5.1.1-1) Thanks.