DebuggingGNOME
This page is part of the debugging series — pages with debugging details for a variety of Ubuntu packages. |
Introduction
This debugging article applies to all GNOME applications.
General debugging procedure
Capturing a manual stacktrace of a crash for upstream
If a GNOME application crash is reproducible in the latest version of the application available in a Ubuntu repository, then one is welcome to file a report upstream. However, it is required to generate a stacktrace manually when filing an upstream report, irrespective of if you have filed a crash report on Launchpad, or on errors.ubuntu.com. This is due to how upstream may not have permissions to access a private crash report (or a Launchpad account to add them to it), test to the issue in the release you are using, or test the version of the application the crash is reproducible in. Hence, please ensure you have attached a stacktrace with full debug symbols.
Enabling making an application crash on critical warnings
In Ubuntu we have disabled the feature that makes applications crash on critical warnings. To debug problems it's sometimes good to have this happen.
This will make it crash:
G_DEBUG=fatal_criticals <program>
If you run the program under gdb or valgrind, it will help you figure out what led to the critical warning.
This will make a program stop on warnings:
<program> --g-fatal-warnings
Debugging Menus
If you should ever have to debug GNOME menus, you might want to use this:
MENU_VERBOSE=1 <program>
Debugging specific GNOME applications
gvfs - When debugging issues between samba and gvfs, please execute the following at a terminal, reproduce the problem, and then post the log to your report:
pkill gvfs; GVFS_DEBUG=all GVFS_SMB_DEBUG=10 /usr/lib/gvfs/gvfsd &> ~/log.txt
nautilus - When debugging nautilus issues:
1) Please specify any plugins or extensions installed. This includes ones that are installed by default (ex. nautlius-share) and non-default ones (ex. nautilus-compare).
2) Please capture a debugging log via a terminal:G_DEBUG="all" NAUTILUS_DEBUG="All" nautilus