When I was debugging ibus-chewing, I set the
G_DEBUG=all
in .profile. Then after a few days, all GTK related programs stop working. from gedit, gvim, emacs, to Firefox all stop at various warning.
At first, I noticed that those GTK programs can only run as root, so I tried with file permission and D-Bus permission, but no prevail. I also search intensively on
GLib-CRITICAL **: g_slice_set_config: assertion `sys_page_size == 0' failed
for Firefox and
WARNING **: AT-SPI: Could not obtain desktop path or name
for other programs, yet none worked.
Eventually, I read the section G_DEBUG section of Running GLib Applications carefully. Although it says
This environment variable can be set to a list of debug options, which cause GLib to print out different types of debugging information.
But in fact, “G_DEBUG=all” does much more than just print error and debug messages, it also enable all the debugging options, including:
fatal-warnings
Causes GLib to abort the program at the first call to g_warning() or g_critical().
In other words, it makes GTK programs fail on whichever warning it encountered. And most likely, most people does not set AT-SPI properly. Thus it will failed immediately after AT-SPI warning messages.
To check whether you have G_DEBUG in your system:
env | grep G_DEBUG
If it returns empty, then you don’t have G_DEBUG
.