2010-08-24 Yao Qi *arm-tdep.c (arm_get_next_pc_raw): Calculate next pc of sigreturn or rt_sigreturn syscall. diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index 1ac8817..978bb72 100644 --- a/gdb/arm-tdep.c +++ b/gdb/arm-tdep.c @@ -3257,7 +3257,18 @@ arm_get_next_pc_raw (struct frame_info *frame, CORE_ADDR pc, int insert_bkpt) case 0xc: case 0xd: case 0xe: /* coproc ops */ + break; case 0xf: /* SWI */ + { + unsigned long svc_number = get_frame_register_unsigned (frame, 7); + + if (svc_number == 119 || svc_number == 173) + { + if (get_frame_type (frame) == SIGTRAMP_FRAME) + { + nextpc = frame_unwind_caller_pc (frame); + } + } break; default: