OSDN Git Service

linux-user: correct handling of break exception for MIPS
authorPetar Jovanovic <petar.jovanovic@imgtec.com>
Fri, 28 Feb 2014 14:25:32 +0000 (15:25 +0100)
committerRiku Voipio <riku.voipio@linaro.org>
Mon, 3 Mar 2014 21:09:04 +0000 (23:09 +0200)
Exception with break instruction has not been correctly propagated as
SIGTRAP. This resolves crash issues with examples that use break
instruction on MIPS.

Signed-off-by: Petar Jovanovic <petar.jovanovic@imgtec.com>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
linux-user/main.c

index 9192977..c19e7fb 100644 (file)
@@ -2384,6 +2384,10 @@ static int do_break(CPUMIPSState *env, target_siginfo_t *info,
         ret = 0;
         break;
     default:
+        info->si_signo = TARGET_SIGTRAP;
+        info->si_errno = 0;
+        queue_signal(env, info->si_signo, &*info);
+        ret = 0;
         break;
     }