add: LOG(L_INFO, "        start check=%x, end check= %x, %x\n", f->check, FRAG_END(f)->check1, FRAG_END(f)->check2);
context: void qm_status(struct qm_block* qm){	struct qm_frag* f;	int i;	LOG(L_INFO, "qm_status (%x):\n", qm);	LOG(L_INFO, " heap size= %d\n", qm->size);	LOG(L_INFO, " used= %d, used+overhead=%d, free=%d\n",			qm->used, qm->real_used, qm->size-qm->real_used);	LOG(L_INFO, " max used (+overhead)= %d\n", qm->max_real_used);		LOG(L_INFO, "dumping all fragments:\n");	for (f=qm->first_frag, i=0;(char*)f<(char*)qm->last_frag_end;f=FRAG_NEXT(f)			,i++){		LOG(L_INFO, "    %3d. %c  address=%x  size=%d\n", i, 				(f->u.is_free)?'a':'N',				(char*)f+sizeof(struct qm_frag), f->size);#ifdef DBG_QM_MALLOC		LOG(L_INFO, "            %s from %s: %s(%d)\n",				(f->u.is_free)?"freed":"alloc'd", f->file, f->func, f->line);#endif	}	DBG("dumping free list:\n");	for (f=qm->free_lst.u.nxt_free,i=0; f!=&(qm->free_lst); f=f->u.nxt_free,			i++){		DBG("    %3d. %c  address=%x  size=%d\n", i, (f->u.is_free)?'a':'N',				(char*)f+sizeof(struct qm_frag), f->size);#ifdef DBG_QM_MALLOC		DBG("            %s from %s: %s(%d)\n", 				(f->u.is_free)?"freed":"alloc'd", f->file, f->func, f->line);#endif	}	LOG(L_INFO, "-----------------------------\n");}