| Running D-Bus clients with Valgrind |
| ==== |
| |
| When running programs using libdbus in Valgrind, some special care needs to be |
| taken so as to avoid incorrect detection of leaks in libdbus. To avoid these |
| false positives, do the following: |
| |
| * Grab a copy of the D-Bus source code |
| |
| * Run configure with the --enable-developer and --with-valgrind options |
| |
| * Run make |
| |
| * Either make sure your code calls dbus_shutdown() (at least while running in |
| Valgrind) or set DBUS_MESSAGE_CACHE=0 in your environment |
| |
| * Run Valgrind on your program with the /path/to/dbus/source/dbus/.libs in your |
| LD_LIBRARY_PATH |
| |
| Your Valgrind log should now be free of any (spurious) libdbus-related leaks. |
| |
| For the curious, the DBUS_MESSAGE_CACHE=0 is required because by |
| default, libdbus uses a recyclable pool of message structs. These help |
| performance a bit. |