X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flib%2Fdebug.c;fp=src%2Flib%2Fdebug.c;h=fafbc8c1acc69de41a5dfb4104f910c2365f4c84;hb=c956c0c2175fc09a8e8d6d3f8effd49abcf7aae1;hp=577ab67f06c39f60f8fd606d157b6a8a564916bd;hpb=244113935a061b272a408db62f3106deadcd1061;p=pintos-anon diff --git a/src/lib/debug.c b/src/lib/debug.c index 577ab67..fafbc8c 100644 --- a/src/lib/debug.c +++ b/src/lib/debug.c @@ -15,5 +15,20 @@ panic (const char *format, ...) printk ("\n"); va_end (args); + backtrace (); + for (;;); } + +void +backtrace (void) +{ + void **frame; + + printk ("Call stack:"); + for (frame = __builtin_frame_address (0); + frame != NULL && frame[0] != NULL; + frame = frame[0]) + printk (" %p", frame[1]); + printk (".\n"); +}