<> ||<>|| = Introduction = As more and more applications and system services use D-Bus, it becomes more important to know how to see what happens on the bus. There are two buses commonly used: the session bus and the system bus. Either may be used by any application, depending on what it is doing. = How to monitor the session bus = This one is easy. Just run dbus-monitor and watch the output. This usually gives you enough information about what is happening on the bus. {{{ dbus-monitor }}} = How to monitor the system bus = This is trickier, because D-Bus policy typically prevents anything but signals from being viewable by dbus-monitor. But we can change that. 1. Create a file /etc/dbus-1/system-local.conf, with these contents: {{{ }}} 1. Reboot your machine to pick up the configuration changes. Simply reloading the DBus server configuration is not sufficient. For further info see [[https://bugs.freedesktop.org/show_bug.cgi?id=80186|this bug]]. 1. Now run dbus-monitor as root. You should be able to see all signals, method calls, and method replies. {{{ sudo dbus-monitor --system }}} 1. When done debugging, it is wise to remove the policy snippet: {{{ sudo rm /etc/dbus-1/system-local.conf }}} = Filtering all the noise = If there is just too much information on the bus, pass a match rule like so: {{{ dbus-monitor "type=signal,sender='org.gnome.TypingMonitor',interface='org.gnome.TypingMonitor'" }}} Multiple rules can be specified. If a message matches ''any'' of the rules, the message will be printed. Like so: {{{ dbus-monitor "type=error" "sender=org.freedesktop.SystemToolsBackends" }}} {{{ dbus-monitor "type=method_call" "type=method_return" "type=error" }}} See the [[http://dbus.freedesktop.org/doc/dbus-specification.html|D-Bus documentation]] for more information on match rule syntax. ---- CategoryBugSquad CategoryDebugging