Install a specialized version of libpagers format_debug_info which
prints more detailed information, like the nodes inode number for file
pager objects. Also label both pager buckets.
* ext2fs/pager-create.c (format_debug_info): New function.
(create_disk_pager): Install our own format_debug_info
Label _pager_class and provide a function which prints a
human-readable description of a pager object.
* libpager/pager-create.c (format_debug_info): New function.
(create_class): Label _pager_class.
---
libpager/pager-create.c | 20
1 file changed, 20 insertions(+)
diff --g
* Makefile (lib-subdirs): Add libintrospection.
* libintrospection/Makefile: New file.
* libintrospection/introspection.c: Likewise.
* libintrospection/introspection.h: Likewise.
* libintrospection/trace.c: Likewise.
---
Makefile | 2 +
libintrospection/Makefile|
Implement portinfo --query-process (hopefully) as envisaged by a
comment in portinfo.c. We use the new Hurd server introspection
protocol to obtain information about the objects related to ports:
% utils/portinfo --receive --query-process 5586 77
77: receive [bucket: diskfs_port_bucket, class
Label all port classes and diskfs_port_bucket. Provide
diskfs_format_debug_info which prints a human-readable description of
a protid object, which notably includes the path and the inode number.
* libdiskfs/diskfs.h (diskfs_format_debug_info): New declaration.
* libdiskfs/init-init.c (diskfs_for
* utils/rpctrace.c (options): Add `--pid' and `--reference-port'.
(print_contents): Prevent the translation of rights if `req' is NULL.
We will use this to print messages in `trace_server'.
(parse_task): New function.
(trace_server): Mach server function that displays relayed messages.
(trace_class
Most Hurd servers use libports to manage receive rights and the
associated objects. These procedures can be used to query the state
associated with receive rights managed by libports.
The procedures are not specific to libports. Any Hurd server can
implement this protocol. To do so, a server in
Hello :)
this patch series adds introspection and tracing facilities to the
Hurd servers using libports. This isn't ready yet, but I'd like to
give everyone a chance to complain early on. Some notes:
* I use Machs `Inherited Ports' mechanism to install a receive right
at a well-known location
Add a compact and self-contained introspection server to libports.
Add functions to to label port buckets and classes. Make it possible
to provide a function that given an object of a class, returns a
human-readable representation for it.
* libports/introspection.c: New file.
* libports/create-bu