On 5/28/20 9:54 PM, [email protected] wrote:
> Author: ylavic
> Date: Thu May 28 19:54:02 2020
> New Revision: 1878247
>
> URL: http://svn.apache.org/viewvc?rev=1878247&view=rev
> Log:
> .gdbinit: dump pool (pre_)cleanups [skip ci]
>
> Modified:
> httpd/httpd/trunk/.gdbinit
Really nice one.
>
> Modified: httpd/httpd/trunk/.gdbinit
> URL:
> http://svn.apache.org/viewvc/httpd/httpd/trunk/.gdbinit?rev=1878247&r1=1878246&r2=1878247&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/.gdbinit (original)
> +++ httpd/httpd/trunk/.gdbinit Thu May 28 19:54:02 2020
> @@ -530,16 +530,29 @@ class DumpPoolAndChilds (gdb.Command):
> tag = darg['tag'].string()
> else:
> tag = "No tag"
> - print("Pool '%s' [%s]: %d/%d free (%d blocks) allocator: %s free blocks
> in allocator: %i kiB" % (tag, arg, free, size, nodes, darg['allocator'],
> self._allocator_free_blocks(darg['allocator'])))
> + print("%sPool '%s' [%s]: %d/%d free (%d blocks) allocator: %s free
> blocks in allocator: %i kiB" % (indent, tag, arg, free, size, nodes,
> darg['allocator'], self._allocator_free_blocks(darg['allocator'])))
> self.free = self.free + free
> self.size = self.size + size
> self.nodes = self.nodes + nodes
> + c_num = 0
> + c = darg['pre_cleanups']
> + while c:
> + c_num = c_num + 1
> + dc = c.dereference()
> + print("%s pre_cleanup #%.2i: data = %s, plain_cleanup_fn = %s,
> child_cleanup_fn = %s" % (indent, c_num, dc['data'],
> dc['plain_cleanup_fn'].dereference(), dc['plain_cleanup_fn'].dereference()))
> + c = dc['next']
> + c = darg['cleanups']
Wouldn't it make sense to do a c_num = 0 here again?
> + while c:
> + c_num = c_num + 1
> + dc = c.dereference()
> + print("%s pst_cleanup #%.2i: data = %s, plain_cleanup_fn = %s,
> child_cleanup_fn = %s" % (indent, c_num, dc['data'],
> dc['plain_cleanup_fn'].dereference(), dc['plain_cleanup_fn'].dereference()))
> + c = dc['next']
>
> def _dump(self, arg, depth):
> pool = arg
> + indent = "%*c" % (depth * 4 + 1, " ")
> while pool:
> - print("%*c" % (depth * 4 + 1, " "), end="")
> - self._dump_one_pool(pool)
> + self._dump_one_pool(pool, indent)
> if pool['child'] != 0:
> self._dump(pool['child'], depth + 1)
> pool = pool['sibling']
>
>
Regards
RĂ¼diger