[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] vl.c: Implement SIGILL signal handler for triggerin
From: |
Michal Novotny |
Subject: |
[Qemu-devel] [PATCH] vl.c: Implement SIGILL signal handler for triggering SIGSEGV |
Date: |
Thu, 5 Sep 2013 14:19:49 +0200 |
This is the patch to introduce SIGILL handler to be able to trigger
SIGSEGV signal in qemu. This has been written to help debugging
state when qemu crashes by SIGSEGV as a simple reproducer to
emulate such situation in case of need.
Signed-off-by: Michal Novotny <address@hidden>
---
vl.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/vl.c b/vl.c
index 7e04641..3966271 100644
--- a/vl.c
+++ b/vl.c
@@ -2897,6 +2897,26 @@ static int object_create(QemuOpts *opts, void *opaque)
return 0;
}
+#ifdef CONFIG_POSIX
+static void signal_handler(int signal)
+{
+ int *p = NULL;
+
+ *p = 0xDEADBEEF;
+}
+
+static void setup_signal_handlers(void)
+{
+ struct sigaction action;
+
+ memset(&action, 0, sizeof(action));
+ sigfillset(&action.sa_mask);
+ action.sa_handler = signal_handler;
+ action.sa_flags = 0;
+ sigaction(SIGILL, &action, NULL);
+}
+#endif
+
int main(int argc, char **argv, char **envp)
{
int i;
@@ -2945,6 +2965,10 @@ int main(int argc, char **argv, char **envp)
#endif
}
+#ifdef CONFIG_POSIX
+ setup_signal_handlers();
+#endif
+
module_call_init(MODULE_INIT_QOM);
qemu_add_opts(&qemu_drive_opts);
--
1.7.11.7
- [Qemu-devel] [PATCH] vl.c: Implement SIGILL signal handler for triggering SIGSEGV,
Michal Novotny <=