Definite's Extractor

My findings on Life, Linux, Open Source, and so on.

Monthly Archives: October 2014

“G_DEBUG=all” in .profile may kill most your GTK programs

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.