sd_bus_message_dump — Produce a string representation of a message for debugging purposes
#include <systemd/sd-bus.h>
int sd_bus_message_dump( | sd_bus_message *m, |
FILE *f, | |
uint64_t flags) ; |
SD_BUS_MESSAGE_DUMP_WITH_HEADER
,
SD_BUS_MESSAGE_DUMP_SUBTREE_ONLY
The sd_bus_message_dump()
function writes a textual representation of the
message m
to the stream f
. If f
is
NULL
, standard output (stdio
) will be used. This function is
intended to be used for debugging purposes, and the output is neither stable nor designed to be machine
readable.
The flags
parameter may be used to modify the output. With
SD_BUS_MESSAGE_DUMP_WITH_HEADER
, a header that specifies the message type and flags
and some additional metadata is printed. When SD_BUS_MESSAGE_DUMP_SUBTREE_ONLY
is
not passed, the contents of the whole message are printed. When it is passed,
only the current container in printed.
Note that this function moves the read pointer of the message. It may be necessary to reset the position afterwards, for example with sd_bus_message_rewind(3).
Output for a signal message (with SD_BUS_MESSAGE_DUMP_WITH_HEADER
):
‣ Type=signal Endian=l Flags=1 Version=1 Cookie=22 Path=/value/a Interface=org.freedesktop.DBus.Properties Member=PropertiesChanged MESSAGE "sa{sv}as" { STRING "org.freedesktop.systemd.ValueTest"; ARRAY "{sv}" { DICT_ENTRY "sv" { STRING "Value"; VARIANT "s" { STRING "object 0x1e, path /value/a"; }; }; }; ARRAY "s" { STRING "Value2"; STRING "AnExplicitProperty"; }; };
On success, this function returns 0 or a positive integer. On failure, it returns a negative errno-style error code. No error codes are currently defined.
Functions described here are available as a shared
library, which can be compiled against and linked to with the
libsystemd
pkg-config(1)
file.
The code described here uses
getenv(3),
which is declared to be not multi-thread-safe. This means that the code calling the functions described
here must not call
setenv(3)
from a parallel thread. It is recommended to only do calls to setenv()
from an early phase of the program when no other threads have been started.