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);
|
page = pagemap_find_page(GC_instance->page_maps, p);
|
||||||
if (!page || (trace_page_type(page) == TRACE_PAGE_BAD)) {
|
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;
|
return NULL;
|
||||||
}
|
}
|
||||||
p = trace_pointer_start(page, p);
|
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);
|
page_count = size_to_apage_count(len);
|
||||||
gc->used_pages += page_count;
|
gc->used_pages += page_count;
|
||||||
|
|
||||||
|
#if MZ_GC_BACKTRACE
|
||||||
|
if (gc->dumping_avoid_collection) return;
|
||||||
|
#endif
|
||||||
|
|
||||||
if(gc->in_unsafe_allocation_mode) {
|
if(gc->in_unsafe_allocation_mode) {
|
||||||
if(gc->used_pages > gc->max_pages_in_heap)
|
if(gc->used_pages > gc->max_pages_in_heap)
|
||||||
gc->unsafe_allocation_abort(gc);
|
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)
|
const char *trace_source_kind(int kind)
|
||||||
{
|
{
|
||||||
switch (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_STACK: return "STACK";
|
||||||
case BT_ROOT: return "ROOT";
|
case BT_ROOT: return "ROOT";
|
||||||
case BT_FINALIZER: return "FINALIZER";
|
case BT_FINALIZER: return "FINALIZER";
|
||||||
|
|
Loading…
Reference in New Issue
Block a user