]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/dde/ddekit/src/panic.c
29f7438cd604bebe8d71d8ef53abceb8637d8e71
[l4.git] / l4 / pkg / dde / ddekit / src / panic.c
1 #include <l4/dde/ddekit/panic.h>
2 #include <l4/dde/ddekit/printf.h>
3
4 #include <l4/sys/kdebug.h>
5 #include <l4/util/backtrace.h>
6 #include <stdarg.h>
7
8 void ddekit_panic(const char *fmt, ...) {
9         va_list va;
10
11         va_start(va, fmt);
12         ddekit_vprintf(fmt, va);
13         va_end(va);
14         ddekit_printf("\n");
15
16         ddekit_backtrace();
17
18         while (1)
19                 enter_kdebug("ddekit_panic()");
20 }
21
22 void ddekit_debug(const char *fmt, ...) {
23         va_list va;
24
25         va_start(va, fmt);
26         ddekit_vprintf(fmt, va);
27         va_end(va);
28         ddekit_printf("\n");
29
30         ddekit_backtrace();
31         enter_kdebug("ddekit_debug()");
32 }
33
34 void ddekit_backtrace()
35 {
36         int len = 16;
37         void *array[len];
38         unsigned i, ret = l4util_backtrace(&array[0], len);
39
40         ddekit_printf("backtrace:\n");
41         for (i = 0; i < ret; ++i)
42                 ddekit_printf("\t%p\n", array[i]);
43 }