#include <stdio.h>
+#include "sbcl.h"
#include "print.h"
#include "runtime.h"
-#include "sbcl.h"
/* This file can be skipped if we're not supporting LDB. */
#if defined(LISP_FEATURE_SB_LDB)
static void brief_fixnum(lispobj obj)
{
-#ifndef alpha
+#ifndef LISP_FEATURE_ALPHA
printf("%ld", ((long)obj)>>2);
#else
printf("%d", ((s32)obj)>>2);
static void print_fixnum(lispobj obj)
{
-#ifndef alpha
+#ifndef LISP_FEATURE_ALPHA
printf(": %ld", ((long)obj)>>2);
#else
printf(": %d", ((s32)obj)>>2);
type = widetag_of(obj);
switch (type) {
- case BASE_CHAR_WIDETAG:
+ case CHARACTER_WIDETAG:
c = (obj>>8)&0xff;
switch (c) {
case '\0':
break;
default:
- idx = type >> 2;
- if (idx < (sizeof(lowtag_Names) / sizeof(char *)))
- printf("%s", lowtag_Names[idx]);
- else
- printf("unknown type (0x%0x)", type);
+ idx = type >> 2;
+ if (idx < (sizeof(lowtag_Names) / sizeof(char *)))
+ printf("%s", lowtag_Names[idx]);
+ else
+ printf("unknown type (0x%0x)", type);
break;
}
}
idx = type >> 2;
if (idx < (sizeof(lowtag_Names) / sizeof(char *)))
- printf(", %s", lowtag_Names[idx]);
+ printf(", %s", lowtag_Names[idx]);
else
- printf(", unknown type (0x%0x)", type);
+ printf(", unknown type (0x%0x)", type);
switch (widetag_of(obj)) {
- case BASE_CHAR_WIDETAG:
+ case CHARACTER_WIDETAG:
printf(": ");
brief_otherimm(obj);
break;
int length = 0;
if (!is_valid_lisp_addr((os_vm_address_t)native_pointer(obj)))
- printf("(invalid Lisp-level address)");
+ printf("(invalid Lisp-level address)");
else if (obj == NIL)
printf("NIL");
else {
static void print_list(lispobj obj)
{
if (!is_valid_lisp_addr((os_vm_address_t)native_pointer(obj))) {
- printf("(invalid address)");
+ printf("(invalid address)");
} else if (obj == NIL) {
printf(" (NIL)");
} else {
char buffer[16];
print_obj("type: ", ((struct instance *)native_pointer(obj))->slots[0]);
for (i = 1; i < HeaderValue(instance->header); i++) {
- sprintf(buffer, "slot %d: ", i);
- print_obj(buffer, instance->slots[i]);
+ sprintf(buffer, "slot %d: ", i);
+ print_obj(buffer, instance->slots[i]);
}
}
ptr = (lispobj *) native_pointer(obj);
if (!is_valid_lisp_addr((os_vm_address_t)obj)) {
- printf("(invalid address)");
- return;
+ printf("(invalid address)");
+ return;
}
header = *ptr;
print_obj(*slots++, *ptr++);
} else {
print_obj("???: ", *ptr++);
- }
+ }
}
}
"plist: ", "name: ", "package: ",
#ifdef LISP_FEATURE_SB_THREAD
"tls-index: " ,
-#endif
+#endif
NULL};
static char *ratio_slots[] = {"numer: ", "denom: ", NULL};
static char *complex_slots[] = {"real: ", "imag: ", NULL};
static void print_otherptr(lispobj obj)
{
if (!is_valid_lisp_addr((os_vm_address_t)obj)) {
- printf("(invalid address)");
+ printf("(invalid address)");
} else {
-#ifndef alpha
+#ifndef LISP_FEATURE_ALPHA
lispobj *ptr;
unsigned long header;
unsigned long length;
int count, type, index;
char *cptr, buffer[16];
- ptr = (lispobj*) native_pointer(obj);
- if (ptr == NULL) {
- printf(" (NULL Pointer)");
- return;
- }
+ ptr = (lispobj*) native_pointer(obj);
+ if (ptr == NULL) {
+ printf(" (NULL Pointer)");
+ return;
+ }
- header = *ptr++;
- length = (*ptr) >> 2;
- count = header>>8;
- type = widetag_of(header);
+ header = *ptr++;
+ length = (*ptr) >> 2;
+ count = header>>8;
+ type = widetag_of(header);
print_obj("header: ", header);
if (lowtag_of(header) != OTHER_IMMEDIATE_0_LOWTAG &&
- lowtag_of(header) != OTHER_IMMEDIATE_1_LOWTAG) {
+ lowtag_of(header) != OTHER_IMMEDIATE_1_LOWTAG) {
NEWLINE_OR_RETURN;
printf("(invalid header object)");
return;
print_slots(symbol_slots, count, ptr);
break;
+#if N_WORD_BITS == 32
case SINGLE_FLOAT_WIDETAG:
NEWLINE_OR_RETURN;
printf("%g", ((struct single_float *)native_pointer(obj))->value);
break;
-
+#endif
case DOUBLE_FLOAT_WIDETAG:
NEWLINE_OR_RETURN;
printf("%g", ((struct double_float *)native_pointer(obj))->value);
#endif
case SIMPLE_BASE_STRING_WIDETAG:
+#ifdef SIMPLE_CHARACTER_STRING_WIDETAG
+ case SIMPLE_CHARACTER_STRING_WIDETAG: /* FIXME */
+#endif
NEWLINE_OR_RETURN;
cptr = (char *)(ptr+1);
putchar('"');
case SIMPLE_ARRAY_UNSIGNED_BYTE_16_WIDETAG:
case SIMPLE_ARRAY_UNSIGNED_BYTE_32_WIDETAG:
#ifdef SIMPLE_ARRAY_SIGNED_BYTE_8_WIDETAG
- case SIMPLE_ARRAY_SIGNED_BYTE_8_WIDETAG:
+ case SIMPLE_ARRAY_SIGNED_BYTE_8_WIDETAG:
#endif
#ifdef SIMPLE_ARRAY_SIGNED_BYTE_16_WIDETAG
- case SIMPLE_ARRAY_SIGNED_BYTE_16_WIDETAG:
+ case SIMPLE_ARRAY_SIGNED_BYTE_16_WIDETAG:
#endif
#ifdef SIMPLE_ARRAY_SIGNED_BYTE_30_WIDETAG
- case SIMPLE_ARRAY_SIGNED_BYTE_30_WIDETAG:
+ case SIMPLE_ARRAY_SIGNED_BYTE_30_WIDETAG:
#endif
#ifdef SIMPLE_ARRAY_SIGNED_BYTE_32_WIDETAG
- case SIMPLE_ARRAY_SIGNED_BYTE_32_WIDETAG:
+ case SIMPLE_ARRAY_SIGNED_BYTE_32_WIDETAG:
#endif
case SIMPLE_ARRAY_SINGLE_FLOAT_WIDETAG:
case SIMPLE_ARRAY_DOUBLE_FLOAT_WIDETAG:
case SIMPLE_ARRAY_LONG_FLOAT_WIDETAG:
#endif
#ifdef SIMPLE_ARRAY_COMPLEX_SINGLE_FLOAT_WIDETAG
- case SIMPLE_ARRAY_COMPLEX_SINGLE_FLOAT_WIDETAG:
+ case SIMPLE_ARRAY_COMPLEX_SINGLE_FLOAT_WIDETAG:
#endif
#ifdef SIMPLE_ARRAY_COMPLEX_DOUBLE_FLOAT_WIDETAG
- case SIMPLE_ARRAY_COMPLEX_DOUBLE_FLOAT_WIDETAG:
+ case SIMPLE_ARRAY_COMPLEX_DOUBLE_FLOAT_WIDETAG:
#endif
#ifdef SIMPLE_ARRAY_COMPLEX_LONG_FLOAT_WIDETAG
- case SIMPLE_ARRAY_COMPLEX_LONG_FLOAT_WIDETAG:
+ case SIMPLE_ARRAY_COMPLEX_LONG_FLOAT_WIDETAG:
#endif
case COMPLEX_BASE_STRING_WIDETAG:
+#ifdef COMPLEX_CHARACTER_STRING_WIDETAG
+ case COMPLEX_CHARACTER_STRING_WIDETAG:
+#endif
case COMPLEX_VECTOR_NIL_WIDETAG:
case COMPLEX_BIT_VECTOR_WIDETAG:
case COMPLEX_VECTOR_WIDETAG:
break;
case SIMPLE_FUN_HEADER_WIDETAG:
- case CLOSURE_FUN_HEADER_WIDETAG:
print_slots(fn_slots, 5, ptr);
break;
break;
case VALUE_CELL_HEADER_WIDETAG:
- print_slots(value_cell_slots, 1, ptr);
+ print_slots(value_cell_slots, 1, ptr);
break;
case SAP_WIDETAG:
NEWLINE_OR_RETURN;
-#ifndef alpha
+#ifndef LISP_FEATURE_ALPHA
printf("0x%08lx", (unsigned long) *ptr);
#else
printf("0x%016lx", *(lispobj*)(ptr+1));
break;
case WEAK_POINTER_WIDETAG:
- print_slots(weak_pointer_slots, 1, ptr);
+ print_slots(weak_pointer_slots, 1, ptr);
break;
- case BASE_CHAR_WIDETAG:
+ case CHARACTER_WIDETAG:
case UNBOUND_MARKER_WIDETAG:
NEWLINE_OR_RETURN;
printf("pointer to an immediate?");
break;
- case FDEFN_WIDETAG:
- print_slots(fdefn_slots, count, ptr);
- break;
-
+ case FDEFN_WIDETAG:
+ print_slots(fdefn_slots, count, ptr);
+ break;
+
default:
NEWLINE_OR_RETURN;
printf("Unknown header object?");
static void print_obj(char *prefix, lispobj obj)
{
static void (*verbose_fns[])(lispobj obj)
- = {print_fixnum, print_struct, print_otherimm, print_list,
- print_fixnum, print_otherptr, print_otherimm, print_otherptr};
+ = {print_fixnum, print_struct, print_otherimm, print_list,
+ print_fixnum, print_otherptr, print_otherimm, print_otherptr};
static void (*brief_fns[])(lispobj obj)
- = {brief_fixnum, brief_struct, brief_otherimm, brief_list,
- brief_fixnum, brief_otherptr, brief_otherimm, brief_otherptr};
+ = {brief_fixnum, brief_struct, brief_otherimm, brief_list,
+ brief_fixnum, brief_otherptr, brief_otherimm, brief_otherptr};
int type = lowtag_of(obj);
struct var *var = lookup_by_obj(obj);
char buffer[256];
dont_descend = 1;
if (var == NULL &&
- /* FIXME: What does this "x & y & z & .." expression mean? */
- (obj & FUN_POINTER_LOWTAG & LIST_POINTER_LOWTAG & INSTANCE_POINTER_LOWTAG & OTHER_POINTER_LOWTAG) != 0)
+ /* FIXME: What does this "x & y & z & .." expression mean? */
+ (obj & FUN_POINTER_LOWTAG & LIST_POINTER_LOWTAG & INSTANCE_POINTER_LOWTAG & OTHER_POINTER_LOWTAG) != 0)
var = define_var(NULL, obj, 0);
if (var != NULL)
{
printf("lispobj 0x%lx\n", (unsigned long)obj);
}
-
+
#endif /* defined(LISP_FEATURE_SB_LDB) */