Re: [PATCH v8 3/7] Refactor arm_software_single_step to use regcache

Yao Qi
2016-01-18T10:35:01Z

Antoine Tremblay <antoine.tremblay@ericsson.com> writes:

> This patch is in preparation for software single step support on ARM in
> GDBServer. It refactors arm_*_software_single_step and sub-functions to
> use regcache instead of frame to access registers so that the code can be
> shared more easily between GDB and GDBServer.
>
> Note also that since the intention is at some point to get rid of frame
> completely in that function, memory reads have also been replaced by
> read_memory_unsigned_integer rather than get_frame_memory_unsigned.
>
> No regressions, tested on ubuntu 14.04 ARMv7 and x86.
> With gdbserver-{native,extended} / { -marm -mthumb }

As a record, this patch causes regressions at least in
gdb.base/sigstep.exp,

(gdb) PASS: gdb.base/sigstep.exp: continue to handler, si+advance in handler, step from handler: advance in handler
step^M
39 } /* handler */^M
1: x/i $pc^M
=> 0x8740 <handler+80>: sub sp, r11, #0^M
(gdb) step^M
^M
Program received signal SIGSEGV, Segmentation fault.^M
setitimer () at ../sysdeps/unix/syscall-template.S:81^M
81 ../sysdeps/unix/syscall-template.S: No such file or directory.^M
1: x/i $pc^M
=> 0xb6eff9c0 <setitimer>: push {r7}^M
(gdb) FAIL: gdb.base/sigstep.exp: continue to handler, si+advance in handler, step from handler: leave handler

Could you take a look at it?

--
Yao (齐尧)