Jeremy, > re-add the talloc_describe_all() function.
It looks like this is a copy of the talloc_report_full() function, but with a different output routine. Perhaps we are better off creating a a varient of talloc_report_*() that takes a function pointer? This function pointer could either be a fprintf() style of function, but with a void* private pointer for the 'file', or we could instead make it a function that takes the details of a specific allocation as arguments, and allows the caller to format it as they wish. I think the latter is probably more useful, particularly as it allows for things like GUIs, web interfaces etc, without them having to try and parse the human-readable output. So, how about this for a interface: void talloc_report_function(void *ptr, talloc_report_fn_t fn, void *private); typedef void (*talloc_report_fn_t)(void *, void *, size_t, const char *, int); a simple report function would be: void my_report(void *private, void *ptr, size_t size, const char *name, int is_reference) { if (is_reference) { printf("reference to %p\n", ptr); } else { printf("ptr %p of size %u has name '%s'\n", ptr, size, name); } } talloc_report_function() would only traverse the direct children of the pointer, leaving it up to the callback function to recurse if it wants to. Cheers, Tridge