Regression gdb.base/callfuncs.exp for s390-on-s390x [Re: [commit, s390] Proper handling of PSW address/mask everywhere]

Jan Kratochvil
2011-12-19T19:47:02Z

On Wed, 30 Nov 2011 17:09:25 +0100, Ulrich Weigand wrote:

commit 176997b00bd777fb63505a20e918118271600f38
Author: Ulrich Weigand <uweigand@de.ibm.com>
Date: Wed Nov 30 16:06:46 2011 +0000
http://sourceware.org/ml/gdb-cvs/2011-11/msg00187.html

> Tested with no regression on s390x-ibm-linux (with -m31 and -m64) and
> on s390-ibm-linux, all both native and gdbserver. Fixes the above
> step-resume-infcall.exp regressions.

I see a regression for s390x with -m31, RHEL-6.2, kernel-2.6.32-220.el6.s390x.

return 7
Make add return now? (y or n) y
-#0 main () at ./gdb.base/callfuncs.c:655
-655 t_structs_c(struct_val1);
-(gdb) PASS: gdb.base/callfuncs.exp: back at main after return from call dummy breakpoint
+Couldn't write registers: Invalid argument.
+(gdb) FAIL: gdb.base/callfuncs.exp: back at main after return from call dummy breakpoint

GDB reads PC as 0x8aaabbbb and triess to write it back as 0x0aaabbbb.

I rather did not try to fix it.

#0 error (string=0x80d7b3aa "%s.") at utils.c:810
#1 in perror_with_name (string=0x80daa600 "Couldn't write registers") at utils.c:1195
#2 in store_regs (regcache=0x8cb90eb0, tid=51221, regnum=1) at s390-nat.c:269
#3 in s390_linux_store_inferior_registers (ops=0x8c8ca340, regcache=0x8cb90eb0, regnum=1) at s390-nat.c:411
#4 in target_store_registers (regcache=0x8cb90eb0, regno=1) at target.c:3585
#5 in regcache_raw_write (regcache=0x8cb90eb0, regnum=1, buf=0x3ffff8d2b20 "") at regcache.c:877
#6 in regcache_cooked_write (regcache=0x8cb90eb0, regnum=1, buf=0x3ffff8d2b20 "") at regcache.c:889
#7 in regcache_restore (dst=0x8cb90eb0, cooked_read=0x8033a870 <do_cooked_read>, cooked_read_context=0x8cc55e80) at regcache.c:358
#8 in regcache_cpy (dst=0x8cb90eb0, src=0x8cc55e80) at regcache.c:382
#9 in frame_pop (this_frame=0x8c9350e8) at frame.c:835
#10 in return_command (retval_exp=0x8c709777 "7", from_tty=0) at stack.c:2402

Thanks,
Jan