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 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. πŸ’€

πŸ’œ 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