umem_printf
umem_printf("%s'", endpath);
umem_printf("?? (0x%p)", pointer);
umem_printf("%s+0x%p", sym_info.dli_sname,
void umem_printf(const char *format, ...);
umem_printf("umem allocator: ");
umem_printf("buffer modified after being freed\n");
umem_printf("modification occurred at offset 0x%lx "
umem_printf("redzone violation: write past end of buffer\n");
umem_printf("invalid free: buffer not in cache\n");
umem_printf("duplicate free: buffer freed twice\n");
umem_printf("boundary tag corrupted\n");
umem_printf("bcp ^ bxstat = %lx, should be %lx\n",
umem_printf("bufctl corrupted\n");
umem_printf("buffer freed to wrong cache\n");
umem_printf("buffer was allocated from %s,\n", cp->cache_name);
umem_printf("caller attempting free to %s.\n",
umem_printf("bad free: free size (%u) != alloc size (%u)\n",
umem_printf("bad free: free address (%p) != alloc address "
umem_printf("buffer=%p bufctl=%p cache: %s\n",
umem_printf("previous transaction on buffer %p:\n", buf);
umem_printf("thread=%p time=T-%ld.%09ld slab=%p cache: %s\n",
umem_printf("\n");
umem_printf("stack trace:\n");
umem_printf("\n");
umem_printf("vmem_destroy('%s'): leaked %lu bytes",