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