SD_BUS_MESSAGE_DUMP(3)
π NAME π
okay so bestie, welcome to the SD_BUS_MESSAGE_DUMP(3) page β aka the sd_bus_message_dump manual. It covers sd_bus_message_dump and sd_bus_message_dump_json, which produce a string representation of a message for debugging purposes. π
β¨ SYNOPSIS β¨
#include <systemd/sd-bus.h>
int sd_bus_message_dump(sd_bus_message *m, FILE *f, uint64_t flags);
int sd_bus_message_dump_json(sd_bus_message *m, uint64_t flags,
sd_json_variant **ret);
π DESCRIPTION π
sd_bus_message_dump() writes a textual representation of the message m to the stream f. If f is NULL, standard output (stdio) will be used. This one is for debugging, so keep it close: the output is neither stable nor designed to be machine readable. π¨
sd_bus_message_dump_json() converts the DBus message m to a JSON variant and stores it in ret. The caller should call sd_json_variant_unref() for the acquired JSON variant after use. Unlike sd_bus_message_dump(), the function itself does not print anything. To print the DBus message in the JSON format, please pass the returned JSON variant to sd_json_variant_dump(). β¨
The flags parameter may be used to modify the output, and it's a combination of zero or more of the following flags: π
SD_BUS_MESSAGE_DUMP_WITH_HEADERβ the header of the message that specifies the message type, flags, and several more additional metadata will be printed or included in the resulting JSON object. πSD_BUS_MESSAGE_DUMP_SUBTREE_ONLYβ only the current container will be printed or converted. When this flag is not specified, the contents of the whole message will be printed or converted. π¦
β οΈ Note that these functions move the read pointer of the message. It may be necessary to reset the position afterwards, for example with sd_bus_message_rewind(3). no cap.
π EXAMPLES π
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";
};
};
π RETURN VALUE π
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. periodt. π
π§ NOTES π§
Functions described here are available as a shared library, which can be compiled against and linked to with the libsystemd pkg-config(1) file. π
All functions listed here are thread-agnostic and only a single thread may operate on a given object at any given time. Different threads may access the same object at different times. Multiple independent objects may be used from different threads in parallel. π§΅
β οΈ The code described here usesgetenv(3), which is declared to be not multi-thread-safe. This means that the code calling the functions described here must not callsetenv(3)from a parallel thread. It is recommended to only do calls tosetenv()from an early phase of the program when no other threads have been started. π
π SEE ALSO π
that's the systemd 261.3 cut of SD_BUS_MESSAGE_DUMP(3) β the footer didn't give us a date, so that's the whole sign-off vibe; mwah ππ«Ά
π¦ where this page comes from
- ubuntu stonking: libsystemd-dev 261.3-0ubuntu3 Β· LGPL-2.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms