DebuggingEmpathy

LOGS CAN CONTAIN PRIVATE INFORMATION. CHECK ALL LOGS WITH EMPATHY BUGS

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.

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.

  1. Kill all Telepathy related processes. Quitting empathy should be enough but to make sure you may want to kill them:

    $ killall empathy mission-control telepathy-gabble telepathy-stream-engine

  2. Start programs in different consoles:
    $ GABBLE_LOGFILE=/tmp/gabble.log GABBLE_PERSIST=1 GABBLE_DEBUG=all $prefix/telepathy/telepathy-gabble
    $ $prefix/lib/telepathy/mission-control
    $ EMPATHY_LOGFILE=/tmp/empathy.log EMPATHY_DEBUG=all empathy
    If you want to debug audio or video issues, you can start empathy with
    $ EMPATHY_LOGFILE=/tmp/empathy.log GST_DEBUG=\*fsrtp\*:5 EMPATHY_DEBUG=all empathy
    Note: "$prefix" should be replaced by /usr/lib/ or /usr/libexec or something like that depending on your installation

If you want to always keep logs you can export *_LOGFILE, *_PERSIST and *_DEBUG in ~/.gnomerc or ~/.bashrc. To add timestamp in logs you can define *_TIMING.

  • Note: '*' can be replaced by GABBLE, BUTTERFLY, SALUT, EMPATHY, HAZE and SOFIASIP.

Getting a stack trace

The most useful debugging information you can provide when encountering a crash in Empathy is by providing a stack trace.

  1. Install debugging symbols for Empathy and telepathy-*.
  2. Start Empathy with gdb

    $ gdb empathy
  3. Run Empathy

    (gdb) run
  4. Make it crash
  5. Get the stacktrace

    (gdb) thread apply all bt full
  6. Copy the output of bt to a pastebin (such as http://www.pastebin.com).

DebuggingEmpathy (last edited 2011-01-28 16:36:18 by and-sam)