[Intel-gfx] [PATCH i-g-t] lib/igt_core: Print stacktrace in initialization/fixture blocks.

Marius Vlad marius.c.vlad at intel.com
Tue Sep 20 08:20:38 UTC 2016


Likely candidate for this behaviour is the igt_fixture block. Seen in the CI by
running tests/kms_psr_sink_crc which is causing segfaults in the fixture block.

While at it fix some minor printing bugs.

Signed-off-by: Marius Vlad <marius.c.vlad at intel.com>
CC: Chris Wilson <chris at chris-wilson.co.uk>
---
 lib/igt_core.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/lib/igt_core.c b/lib/igt_core.c
index dd27a22..43db468 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -1122,7 +1122,7 @@ static void
 printnum(unsigned long long num, unsigned base)
 {
 	int i = 0;
-	unsigned long long __num;
+	unsigned long long __num = num;
 
 	/* determine from where we should start dividing */
 	do {
@@ -1264,7 +1264,7 @@ static void print_backtrace_sig_safe(void)
 		unw_word_t off;
 
 		if (unw_get_proc_name(&cursor, name, 255, &off) < 0)
-			xstrlcpy(name, "<unknown>", 9);
+			xstrlcpy(name, "<unknown>", 10);
 
 		xprintf(" #%d [%s+0x%x]\n", stack_num++, name,
 				(unsigned int) off);
@@ -1740,7 +1740,7 @@ static void fatal_sig_handler(int sig)
 			igt_assert_eq(write(STDERR_FILENO, ".\n", 2), 2);
 		}
 
-		if (in_subtest && crash_signal(sig)) {
+		if (crash_signal(sig)) {
 			/* Linux standard to return exit code as 128 + signal */
 			if (!failed_one)
 				igt_exitcode = 128 + sig;
@@ -1749,7 +1749,8 @@ static void fatal_sig_handler(int sig)
 #ifdef HAVE_LIBUNWIND
 			print_backtrace_sig_safe();
 #endif
-			exit_subtest("CRASH");
+			if (in_subtest)
+				exit_subtest("CRASH");
 		}
 		break;
 	}
-- 
2.5.0



More information about the Intel-gfx mailing list