backtrace fix
This commit is contained in:
parent
a635fe817b
commit
3fd5b5eb6e
|
@ -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);
|
||||
|
|
|
@ -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";
|
||||
|
|
Loading…
Reference in New Issue
Block a user