Esempio n. 1
0
STATIC void GC_print_block_descr_inner(struct hblk *h)
{
    hdr * hhdr = HDR(h);
    size_t bytes = hhdr -> hb_sz;
    unsigned n_marks = GC_n_set_marks(hhdr);



    char* pfstr = (hhdr->hb_flags & HAS_PENDING_FREE) ? "pf" : "";

    if (hhdr -> hb_n_marks != n_marks) {
        GC_printf("(%s:%u:%u,%u!=%u)", pfstr, hhdr -> hb_obj_kind, (unsigned)bytes,
                  (unsigned)hhdr -> hb_n_marks, n_marks);
    } else {
        GC_printf("(%s:%u:%u,%u)", pfstr, hhdr -> hb_obj_kind,
                  (unsigned)bytes, n_marks);
    }
}
Esempio n. 2
0
STATIC void GC_print_block_descr(struct hblk *h,
                                 word /* struct PrintStats */ raw_ps)
{
    hdr * hhdr = HDR(h);
    size_t bytes = hhdr -> hb_sz;
    struct Print_stats *ps;
    unsigned n_marks = GC_n_set_marks(hhdr);

    if (hhdr -> hb_n_marks != n_marks) {
      GC_printf("(%u:%u,%u!=%u)", hhdr -> hb_obj_kind, (unsigned)bytes,
                                  (unsigned)hhdr -> hb_n_marks, n_marks);
    } else {
      GC_printf("(%u:%u,%u)", hhdr -> hb_obj_kind,
                              (unsigned)bytes, n_marks);
    }
    bytes += HBLKSIZE-1;
    bytes &= ~(HBLKSIZE-1);

    ps = (struct Print_stats *)raw_ps;
    ps->total_bytes += bytes;
    ps->number_of_blocks++;
}