X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fbacktrace.c;h=d21e4885ed228b1efcde34379ac875038a3de7c2;hb=359a6c88dfc80fbae9bdae5251ce0976d003355c;hp=1b300ba5849849b7915c9ba2f18da9c0f30bf57f;hpb=1419c1d2d50f039be46a8667351b7738ac4965e4;p=sbcl.git diff --git a/src/runtime/backtrace.c b/src/runtime/backtrace.c index 1b300ba..d21e488 100644 --- a/src/runtime/backtrace.c +++ b/src/runtime/backtrace.c @@ -15,8 +15,8 @@ #include #include -#include "runtime.h" #include "sbcl.h" +#include "runtime.h" #include "globals.h" #include "os.h" #include "interrupt.h" @@ -28,7 +28,7 @@ #include "genesis/primitive-objects.h" #include "thread.h" -#ifndef __i386__ +#if !(defined(LISP_FEATURE_X86) || defined(LISP_FEATURE_X86_64)) /* KLUDGE: Sigh ... I know what the call frame looks like and it had * better not change. */ @@ -79,7 +79,6 @@ code_pointer(lispobj object) break; case RETURN_PC_HEADER_WIDETAG: case SIMPLE_FUN_HEADER_WIDETAG: - case CLOSURE_FUN_HEADER_WIDETAG: len = HEADER_LENGTH(header); if (len == 0) headerp = NULL; @@ -239,12 +238,13 @@ backtrace(int nframes) symbol = (struct symbol *) object; object = (lispobj *) native_pointer(symbol->name); } - if (widetag_of(*object) == SIMPLE_STRING_WIDETAG) { + if (widetag_of(*object) == SIMPLE_BASE_STRING_WIDETAG) { struct vector *string; string = (struct vector *) object; printf("%s, ", (char *) string->data); } else + /* FIXME: broken from (VECTOR NIL) */ printf("(Not simple string??\?), "); } else printf("(Not other pointer??\?), "); @@ -271,6 +271,8 @@ backtrace(int nframes) #else + + void backtrace(int nframes) {