Windows DBus shared memory name depends on _DEBUG?

Thomas Sondergaard ts at medical-insight.com
Wed Sep 22 02:06:52 PDT 2010


Hi,

I'm using D-Bus (master) with Qt on Windows and I'm experiencing that my 
debug builds, which link the debug version of QtDBus, which again link 
the debug version of libdbus, ie dbus-1d.dll, always starts a new 
session bus.

I've discovered that the reason is that dbus-daemon.exe is built with 
release settings. This causes the name of the shared memory segment used 
to find the running server to be different, due to these lines in 
dbus-sysdeps-win.c:

#ifdef _DEBUG
static const char *cDBusDaemonAddressInfo = "DBusDaemonAddressInfoDebug";
#else
static const char *cDBusDaemonAddressInfo = "DBusDaemonAddressInfo";
#endif

What is the wisdom behind using a different shared memory address for 
dbus build with debugging enabled? If the different address is meant to 
allow the developer to experiment with a debugging build while at the 
same time running other software that uses a release version of dbus, I 
think it would make sense to make the address a configuration option.

I got myself into this situation by first building and installing dbus 
with release settings and then building and installing with debug 
settings to the same prefix. I did that because I wanted both a debug 
and a release version of dbus-1.dll (dbus-1d.dll).

Regards,

Thomas





More information about the dbus mailing list