# sd_bus_message_dump

## NAME



           sd_bus_message_dump, sd_bus_message_dump_json - 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



           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 **sd_bus_message_dump_json()** function 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 is 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
               the 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).
    


## 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.
    


## 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.
    
           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.
    


* * *