SD_BUS_MESSAGE_DUMP(3) sd_bus_message_dump SD_BUS_MESSAGE_DUMP(3)

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);


The sd_bus_message_dump() function writes a textual representation of the message m to the stream f. 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.

These APIs are implemented as a shared library, which can be compiled and linked to with the libsystemd pkg-config(1) file.

systemd(1), sd-bus(3)
systemd 248