diff --git a/src/racket/gc2/backtrace.c b/src/racket/gc2/backtrace.c index dab7299429..69882a42df 100644 --- a/src/racket/gc2/backtrace.c +++ b/src/racket/gc2/backtrace.c @@ -47,7 +47,7 @@ static void *print_out_pointer(const char *prefix, void *p, page = pagemap_find_page(GC_instance->page_maps, p); if (!page || (trace_page_type(page) == TRACE_PAGE_BAD)) { - GCPRINT(GCOUTF, "%s%s %p %p\n", prefix, trace_source_kind(*_kind), p); + GCPRINT(GCOUTF, "%s%s %p\n", prefix, trace_source_kind(*_kind), p); return NULL; } p = trace_pointer_start(page, p); diff --git a/src/racket/gc2/newgc.c b/src/racket/gc2/newgc.c index b4abf7009d..f456871d90 100644 --- a/src/racket/gc2/newgc.c +++ b/src/racket/gc2/newgc.c @@ -351,6 +351,10 @@ inline static void check_used_against_max(NewGC *gc, size_t len) page_count = size_to_apage_count(len); gc->used_pages += page_count; +#if MZ_GC_BACKTRACE + if (gc->dumping_avoid_collection) return; +#endif + if(gc->in_unsafe_allocation_mode) { if(gc->used_pages > gc->max_pages_in_heap) gc->unsafe_allocation_abort(gc); @@ -3412,6 +3416,12 @@ static void *trace_pointer_start(mpage *page, void *p) { const char *trace_source_kind(int kind) { switch (kind) { + case PAGE_TAGGED: return "_TAGGED"; + case PAGE_ATOMIC: return "_ATOMIC"; + case PAGE_ARRAY: return "_ARRAY"; + case PAGE_TARRAY: return "_TARRAY"; + case PAGE_PAIR: return "_PAIR"; + case PAGE_BIG: return "_BIG"; case BT_STACK: return "STACK"; case BT_ROOT: return "ROOT"; case BT_FINALIZER: return "FINALIZER";