Telepathy programs have useful debug output for debugging. When you're facing a bug it's always a good idea to attach those debug output to the bug report.
Debugging (New Way)
Empathy includes a debugging window that allows you to show debugging output from Empathy and other Telepathy components, namely Mission Control and most connection managers.
To retrieve a debug log, open type Alt+F2 in GNOME Shell and then type empathy-debugger in Empathy's contact list. You can also start it from a terminal. This will show you the debugging logs for running Telepathy components. You can select the component using the drop-down menu in the top-left corner of the window, which also lists the protocols the various connection managers are responsible for.
To save a debug log to a file, click Save. To copy the log to the clipboard so you can paste it elsewhere, click Copy.
Normally the debug logs for both Empathy and the appropriate connection manager (e.g. gabble for XMPP, salut for Bonjour, butterfly for MSN, idle for IRC) will be required.
Debugging (Old Way)
Please try using the debug window first! It's much easier. These instructions are only needed in particularly unusual cases.
Here is an example using telepathy-gabble (the Jabber connection manager); for more details and instructions for other protocols, see the Debugging page on the Telepathy wiki.
- Sign out from all your IM accounts by setting your status to Offline.
- Kill all Telepathy-related processes. Quitting Empathy should be enough, but to make sure you may want to kill other Telepathy components after quitting Empathy:
$ killall mission-control telepathy-gabble
- Start programs in different consoles:
$ GABBLE_LOGFILE=/tmp/gabble.log GABBLE_PERSIST=1 GABBLE_DEBUG=all WOCKY_DEBUG=all G_MESSAGES_DEBUG=all /usr/lib/telepathy/telepathy-gabble $ EMPATHY_LOGFILE=/tmp/empathy.log EMPATHY_DEBUG=all G_MESSAGES_DEBUG=all empathy
Note that, depending on your platform, /usr/lib/telepathy might need to be replaced by /usr/libexec. If you want to debug audio or video issues, you can instead start Empathy with:
$ EMPATHY_LOGFILE=/tmp/empathy.log GST_DEBUG=\*fsrtp\*:5 EMPATHY_DEBUG=all empathy
- Set your status back to Available.
Reproduce your issue, and then attach both /tmp/gabble.log and /tmp/empathy.log to your bug report.
Getting a Stack Trace
The most useful debugging information you can provide when encountering a crash in Empathy is by providing a stack trace.
- Install debuging symbols for Empathy and telepathy-*.
Start Empathy with gdb
$ gdb empathy
- Make it crash
Get the stacktrace
(gdb) thread apply all bt full
Copy the output of bt to a pastebin (such as http://www.pastebin.com).
Quit the debugger (and end the program)