DebuggingGNOMEApplets

Debugging Central

This page is part of the debugging series — pages with debugging details for a variety of Ubuntu packages.

Introduction

The GNOME Applets are one of the pieces of software inside GNOME that grab more attention from the users and they tend to think that is really difficult to debug this kind of software, but isn't the reality since they can be debugged almost the same way every other software in GNOME.

Debugging procedure

GDB

If you want to run the applet inside a debugger you can do the following:

Taking as example the Network Monitor Applet, you first need to figure it out two things:

  • the PID of the process: in my case 12480
  • the process path: /usr/lib/gnome-netstatus/gnome-netstatus-applet

When you already have that you can do:

 gdb /usr/lib/gnome-netstatus/gnome-netstatus-applet 12480
GNU gdb 6.7.1-debian
Copyright (C) 2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
(no debugging symbols found)
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
Attaching to program: /usr/lib/gnome-netstatus/gnome-netstatus-applet, process 12480
...
0xffffe410 in __kernel_vsyscall ()
(gdb) c
Continuing.

You're already inside gdb and attached to the process 12480 which is the applet.

If you need to run the applet from gdb you have to do:

gdb /usr/lib/gnome-netstatus/gnome-netstatus-applet
GNU gdb 6.7.1-debian
Copyright (C) 2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
(no debugging symbols found)
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb) run
Starting program: /usr/lib/gnome-netstatus/gnome-netstatus-applet 
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread 0xb6e156b0 (LWP 12551)]

After execute the run command from gdb you need to add the applet to the panel as:

right click on the panel and select add to panel

  • addtopanel-1.jpg

Then you have to find the applet from the list

  • addtopanel.jpg

If the applet has crashed you may want to generate a backtrace following the procedures listed at DebuggingProgramCrash, at minimum you need these packages installed:

  • libpanel-applet2-0-dbgsym
  • libgnomeui-0-dbgsym
  • libbonobo2-0-dbgsym
  • libbonoboui2-0-dbgsym
  • libglib2.0-0-dbgsym
  • libgtk2.0-0-dbgsym

Strace

If you need to use strace you can do the following:

 strace -p PID 

How to Forward

If you think that a bug needs to be forwarding upstream, please have a look to Bugs/ForwardingGNOMEBugs where you can find instructions on how to do it.

Known bugs

Open

Bug#

Description

126333

Volume Control using gnome panel applet and keyboard shortcut alternates mute / % volume during sliding

Also see


CategoryBugSquad CategoryDebugging

DebuggingGNOMEApplets (last edited 2008-08-06 16:59:54 by localhost)