gdbinit: print bucket fd when available.
@@ -151,18 +151,13 @@ define dump_bucket_ex
print_bkt_datacol "rc" "n/%c" 'a' $sh
else
- if (($bucket->type == &apr_bucket_type_file) || \
- ($bucket->type == &apr_bucket_type_pipe) || \
- ($bucket->type == &apr_bucket_type_socket))
+ if ($bucket->type == &apr_bucket_type_file)
- # buckets that contain data not in memory (ie not printable)
-
- print_bkt_datacol "contents" "[**unprintable**%c" ']' $sh
- printf " "
- if $bucket->type == &apr_bucket_type_file
+ # file bucket, can show fd and refcount
+ set $fd = ((apr_bucket_file*)$bucket->data)->fd->filedes
+ print_bkt_datacol "contents" "[***file***] fd=%-6ld" (long)$fd $sh
set $refcount = ((apr_bucket_refcount *)$bucket->data)->refcount
print_bkt_datacol "rc" "%d" $refcount $sh
- end
else
if (($bucket->type == &apr_bucket_type_heap) || \
@@ -230,8 +225,27 @@ define dump_bucket_ex
end
else
+ if ($bucket->type == &apr_bucket_type_pipe)
+
+ # pipe bucket, can show fd
+ set $fd = ((apr_file_t*)$bucket->data)->filedes;
+ print_bkt_datacol "contents" "[***pipe***] fd=%-6ld" (long)$fd $sh
+
+ else
+ if ($bucket->type == &apr_bucket_type_socket)
+
+ # file bucket, can show fd
+ set $fd = ((apr_socket_t*)$bucket->data)->socketdes;
+ print_bkt_datacol "contents" "[**socket**] fd=%-6ld" (long)$fd $sh
+
+ else
+
# 3rd-party bucket type
- print_bkt_datacol "contents" "[**unknown**%c" ']' $sh
+ print_bkt_datacol "contents" "[**opaque**]%-10c" ' ' $sh
+ end
+ end
+
+ # no refcount
printf " "
print_bkt_datacol "rc" "n/%c" 'a' $sh
end
