From 7d15592e06e4abccc97cb8c5670f564327f747e9 Mon Sep 17 00:00:00 2001 From: Yao Qi Date: Fri, 11 Nov 2016 16:50:42 +0000 Subject: [PATCH] Don't handle unavailable/optimized-out in spu_software_single_step When we do software single step, frame is always the innermost one, so it is impossible to get unavailable/optimized-out errors. gdb: 2016-11-11 Yao Qi * spu-tdep.c (spu_software_single_step): Don't call get_frame_register_bytes, call get_frame_register_unsigned instead. --- gdb/ChangeLog | 6 ++++++ gdb/spu-tdep.c | 19 +------------------ 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7fc2b4a9fe1..99edafca61c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2016-11-11 Yao Qi + + * spu-tdep.c (spu_software_single_step): Don't call + get_frame_register_bytes, call get_frame_register_unsigned + instead. + 2016-11-11 Yao Qi * cp-valprint.c (cp_print_value): Remove local base_valaddr. diff --git a/gdb/spu-tdep.c b/gdb/spu-tdep.c index 5494a93d2ae..073be2d7189 100644 --- a/gdb/spu-tdep.c +++ b/gdb/spu-tdep.c @@ -1652,24 +1652,7 @@ spu_software_single_step (struct frame_info *frame) if (reg == SPU_PC_REGNUM) target += SPUADDR_ADDR (pc); else if (reg != -1) - { - int optim, unavail; - - if (get_frame_register_bytes (frame, reg, 0, 4, buf, - &optim, &unavail)) - target += extract_unsigned_integer (buf, 4, byte_order) & -4; - else - { - if (optim) - throw_error (OPTIMIZED_OUT_ERROR, - _("Could not determine address of " - "single-step breakpoint.")); - if (unavail) - throw_error (NOT_AVAILABLE_ERROR, - _("Could not determine address of " - "single-step breakpoint.")); - } - } + target += get_frame_register_unsigned (frame, reg) & -4; target = target & lslr; if (target != next_pc) -- 2.30.2