summaryrefslogtreecommitdiff
path: root/include/common
diff options
context:
space:
mode:
authorAntonio Nino Diaz <antonio.ninodiaz@arm.com>2018-08-23 15:13:58 +0100
committerAntonio Nino Diaz <antonio.ninodiaz@arm.com>2018-08-30 09:21:53 +0100
commit3e530d8ea8336839f50f3265c8815c569527f99f (patch)
tree9d84439bef8e77665bcf18c079fb7955b91e2b2d /include/common
parent0c62883f7eed80f02c3585d7d0e408def0569f7c (diff)
backtrace: Print backtrace in assert() and panic()
When any of these functions is called the backtrace will be printed to the console. Change-Id: Id60842df824b320c485a9323ed6b80600f4ebe35 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
Diffstat (limited to 'include/common')
-rw-r--r--include/common/debug.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/include/common/debug.h b/include/common/debug.h
index ee25af12..ab3e15a7 100644
--- a/include/common/debug.h
+++ b/include/common/debug.h
@@ -27,7 +27,9 @@
#ifndef __ASSEMBLY__
#include <cdefs.h>
+#include <console.h>
#include <stdarg.h>
+#include <stdbool.h>
#include <stdio.h>
/*
@@ -90,7 +92,13 @@ void backtrace(const char *cookie);
#endif
void __dead2 do_panic(void);
-#define panic() do_panic()
+
+#define panic() \
+ do { \
+ backtrace(__func__); \
+ (void)console_flush(); \
+ do_panic(); \
+ } while (false)
/* Function called when stack protection check code detects a corrupted stack */
void __dead2 __stack_chk_fail(void);