# gdb macros which may be useful for folks using gdb to debug # apache. Delete it if it bothers you. define dump_table set $t = (apr_table_entry_t *)((apr_array_header_t *)$arg0)->elts set $n = ((apr_array_header_t *)$arg0)->nelts set $i = 0 while $i < $n printf "[%u] '%s'='%s'\n", $i, $t[$i].key, $t[$i].val set $i = $i + 1 end end document dump_table Print the key/value pairs in a table. end define rh run -f /home/dgaudet/ap2/conf/mpm.conf end define ro run -DONE_PROCESS end define dump_string_array set $a = (char **)((apr_array_header_t *)$arg0)->elts set $n = (int)((apr_array_header_t *)$arg0)->nelts set $i = 0 while $i < $n printf "[%u] '%s'\n", $i, $a[$i] set $i = $i + 1 end end document dump_string_array Print all of the elements in an array of strings. end define dump_bucket set $bucket = $arg0 printf "bucket=%s(0x%lx), length=%ld, data=0x%lx\n", \ $bucket->type->name, \ (unsigned long)$bucket, (long)$bucket->length, \ (unsigned long)$bucket->data end document dump_bucket Print bucket info end define dump_brigade set $bb = $arg0 set $bucket = ((&((apr_bucket_brigade *)$bb)->list))->next set $sentinel = ((char *)((&(((apr_bucket_brigade *)$bb)->list)) \ - ((size_t) &((struct apr_bucket *)0)->link))) set $i = 0 printf "dump of brigade 0x%lx\n", (unsigned long)$bb if $bucket == $sentinel printf "brigade is empty\n" end while $bucket != $sentinel printf " %d: bucket=%s(0x%lx), length=%ld, data=0x%lx\n", \ $i, $bucket->type->name, \ (unsigned long)$bucket, (long)$bucket->length, \ (unsigned long)$bucket->data set $i = $i + 1 set $bucket = $bucket->link.next end end document dump_brigade Print bucket brigade info end define dump_filters set $f = $arg0 while $f printf "%s(0x%lx): ctx=0x%lx, r=0x%lx, c=0x%lx\n", \ $f->frec->name, (unsigned long)$f, (unsigned long)$f->ctx, \ $f->r, $f->c set $f = $f->next end end document dump_filters Print filter chain info end define dump_process_rec set $p = $arg0 printf "process_rec=0x%lx:\n", (unsigned long)$p printf " pool=0x%lx, pconf=0x%lx\n", \ (unsigned long)$p->pool, (unsigned long)$p->pconf end document dump_process_rec Print process_rec info end define dump_server_rec set $s = $arg0 printf "name=%s:%d\n", \ $s->server_hostname, $s->port dump_process_rec($s->process) end document dump_server_rec Print server_rec info end define dump_servers set $s = $arg0 while $s dump_server_rec($s) printf "\n" set $s = $s->next end end document dump_servers Print server_rec list info end