<> ||<>|| = 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 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 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 {{attachment:addtopanel-1.jpg}} Then you have to find the applet from the list {{attachment: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''' || || [[https://bugs.launchpad.net/ubuntu/+source/gnome-applets/+bug/126333|126333]] || Volume Control using gnome panel applet and keyboard shortcut alternates mute / % volume during sliding || = Also see = * DebuggingProcedures ---- CategoryBugSquad CategoryDebugging