From 697a834c35d19447b7dcdb9e1d9434bc6ce17c21 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linux.intel.com>
Date: Wed, 12 Aug 2015 15:11:30 -0500
Subject: [PATCH] cpus.c: Add error messages when qemi_cpu_kick_thread fails.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Add custom_debug.h with function for print backtrace information.
When pthread_kill fails in qemu_cpu_kick_thread display backtrace and
current cpu information.

Upstream-Status: Inappropriate
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
---
 cpus.c         |  5 +++++
 custom_debug.h | 24 ++++++++++++++++++++++++
 2 files changed, 29 insertions(+)
 create mode 100644 custom_debug.h

diff --git a/cpus.c b/cpus.c
index a822ce3..7e4786e 100644
--- a/cpus.c
+++ b/cpus.c
@@ -1080,6 +1080,8 @@ static void *qemu_tcg_cpu_thread_fn(void *arg)
     return NULL;
 }
 
+#include "custom_debug.h"
+
 static void qemu_cpu_kick_thread(CPUState *cpu)
 {
 #ifndef _WIN32
@@ -1088,6 +1090,9 @@ static void qemu_cpu_kick_thread(CPUState *cpu)
     err = pthread_kill(cpu->thread->thread, SIG_IPI);
     if (err) {
         fprintf(stderr, "qemu:%s: %s", __func__, strerror(err));
+        fprintf(stderr, "CPU #%d:\n", cpu->cpu_index);
+        cpu_dump_state(cpu, stderr, fprintf, 0);
+        backtrace_print();
         exit(1);
     }
 #else /* _WIN32 */
diff --git a/custom_debug.h b/custom_debug.h
new file mode 100644
index 0000000..f029e45
--- /dev/null
+++ b/custom_debug.h
@@ -0,0 +1,24 @@
+#include <execinfo.h>
+#include <stdio.h>
+#define BACKTRACE_MAX 128
+static void backtrace_print(void)
+{
+	int nfuncs = 0;
+	void *buf[BACKTRACE_MAX];
+	char **symbols;
+	int i;
+
+	nfuncs = backtrace(buf, BACKTRACE_MAX);
+
+	symbols = backtrace_symbols(buf, nfuncs);
+	if (symbols == NULL) {
+		fprintf(stderr, "backtrace_print failed to get symbols");
+		return;
+	}
+
+	fprintf(stderr, "Backtrace ...\n");
+	for (i = 0; i < nfuncs; i++)
+		fprintf(stderr, "%s\n", symbols[i]);
+
+	free(symbols);
+}
-- 
1.9.1

