the_pool = pool;
}
else {
- chunk_appendf(&trash, "Tag does not match. Possible origin pool(s):\n");
+ if (!may_access(pool_mark))
+ chunk_appendf(&trash, "Tag not accessible. ");
+ else
+ chunk_appendf(&trash, "Tag does not match (%p). ", tag);
list_for_each_entry(ph, &pools, list) {
pool_mark = (const void **)(((char *)item) + ph->size);
tag = *pool_mark;
if (tag == ph) {
+ if (!the_pool)
+ chunk_appendf(&trash, "Possible origin pool(s):\n");
+
chunk_appendf(&trash, " tag: @%p = %p (%s, size %u, real %u, users %u)\n",
pool_mark, tag, ph->name, ph->size, ph->alloc_sz, ph->users);
if (!the_pool || the_pool->size < ph->size)
}
if (!the_pool)
- chunk_appendf(&trash, " none found.\n");
+ chunk_appendf(&trash, "Tag does not match any other pool.\n");
}
}