summaryrefslogtreecommitdiffstats
path: root/.gdbinit
diff options
context:
space:
mode:
authorStefan Fritsch <sf@apache.org>2012-06-22 16:55:07 +0200
committerStefan Fritsch <sf@apache.org>2012-06-22 16:55:07 +0200
commit46afd8fd2e7442c0b1d6e692d09e74f98f867c51 (patch)
tree367054687f2dc7e0cb5854dbf53651e7e6d43267 /.gdbinit
parentRFC 5878 support. (diff)
downloadapache2-46afd8fd2e7442c0b1d6e692d09e74f98f867c51.tar.xz
apache2-46afd8fd2e7442c0b1d6e692d09e74f98f867c51.zip
improve dump_allocator, add dump_one_pool
- dump_one_pool dumps the size of a pool not including child pools - dump_allocator now dumps the size of the memnodes and not the last used free size. Also dump the total size. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1352909 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '.gdbinit')
-rw-r--r--.gdbinit24
1 files changed, 23 insertions, 1 deletions
diff --git a/.gdbinit b/.gdbinit
index a0fae7f59a..6b3f9b72a4 100644
--- a/.gdbinit
+++ b/.gdbinit
@@ -349,23 +349,45 @@ define dump_allocator
printf "Allocator free list:\n"
set $i = 0
set $max =(sizeof $arg0->free)/(sizeof $arg0->free[0])
+ set $kb = 0
while $i < $max
set $node = $arg0->free[$i]
if $node != 0
printf " #%2d: ", $i
while $node != 0
- printf "%d, ", $node->endp - $node->first_avail
+ printf "%d, ", 4096 << $node->index
+ set $kb = $kb + (4 << $node->index)
set $node = $node->next
end
printf "ends.\n"
end
set $i = $i + 1
end
+ printf "Sum of free blocks: %dkiB\n", $kb
end
document dump_allocator
Print status of an allocator and its freelists.
end
+define dump_one_pool
+ set $p = $arg0
+ set $size = 0
+ set $free = 0
+ set $nodes = 0
+ set $node = $arg0->active
+ set $done = 0
+ while $done == 0
+ set $size = $size + (4096 << $node->index)
+ set $free = $free + ($node->endp - $node->first_avail)
+ set $nodes = $nodes + 1
+ set $node = $node->next
+ if $node == $arg0->active
+ set $done = 1
+ end
+ end
+ printf "Pool '%s' [%p]: %d/%d free (%d blocks)\n", $p->tag, $p, $free, $size, $nodes
+end
+
# Set sane defaults for common signals:
handle SIGPIPE noprint pass nostop
handle SIGUSR1 print pass nostop