Home Forums Wiki Doc Install Extras Screenshots IRC Projects Blog Users Groups Register
Glx-Dock / Cairo-Dock Wiki ddd
The latest stable release is the *3.3.2* : How to install it here.
History View code

Glx-Dock / Cairo-Dock

Home

History

Language

fr Français

en English

Support Us

Flattr this

Cairo-Dockon

ddd

If you want to help developers fixing bugs that crash the dock, the best is to compile the latest revision of the dock from the source in BZR and then produce a backtrace.

Installing debug symbols
  • For Ubuntu users, you just need to add our Weekly ppa (or our ppa for stable versions but it's maybe better for us to install the version from the "weekly" ppa), and install this packages : cairo-dock-core-dbg libgldi3-dbg cairo-dock-plug-ins-dbg cairo-dock-plug-ins-integration-dbg. You can also use directly this command in a terminal :
    sudo apt-get install gdb cairo-dock-core-dbg libgldi3-dbg cairo-dock-plug-ins-dbg cairo-dock-plug-ins-integration-dbg
    (Note: for Debian users, you can also add our repository for stable versions and install the same packages)
  • For Debian users and Ubuntu users if you want to compile the dock or in case we ask you, the compilation is made very easy thanks to this script.
  • For Fedora users, you just need to install the 2 debuginfo packages provided on our repository.
  • For other distributions that can take more time, but all the commands and explanations are give on the same page => From BZR. Don't forget to add the debug symbols with this command CMake :
    cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug
  • For ArchLinux users, if you're using cairo-dock-*-bzr packages from AUR, editing the PKGBUILD (core and plug-ins) for the option to CMake is not enough. Momentarily, you need to remove the option "strip" in /etc/makepkg.conf (OPTIONS=(strip (...)) or add "options=(debug !strip)" at the beginning of both core and plugins' PKGBUILDs. If you're using packages from Community repos, please have a look here.



Backtrace

Terminal Method
GDB: It can be interesting to have a full backtrace but you have to use a terminal and a few commands. If you're able to do that, don't hesitate to add these informations to the bug report!
So... first install gdb package (which should be in your repository or other overlays, etc.)
Then, simply launch these commands and post the content of the gdb.txt file located in your home directory
cd
gdb cairo-dock
#> now you're in the gdb prompt
run
#> if you want to launch the dock with arguments, you can add them after 'run', e.g: to launch the dock without OpenGL backend: 'run -c'
#> simply reproduce the crash (or see the note below if you don't have a crash)
set logging on
l
bt full
#> then press Enter until the end of the backtrace
info frame
info registers
x/16i $pc
thread apply all bt full
#> then press Enter until the end of the backtrace
quit
This file has been created in your home directory: gdb.txt
To read:
cat ~/gdb.txt


Note: if you have a bug with an infinite loop (e.g. the dock consumes 100% of one CPU), instead of 'reproducing the crash', simply reproduce the bug and then press this shortkey 'Ctrl+C' in your terminal's window. Then you can enter other commands (set logging on, etc.)



Graphic Method
Bare in mind that it's more interesting for us to work with a full backtrace. So, if your are able to use commands in a terminal, you can directly jump to the part about GDB.
  • Install the light software ddd (which should be in your repository or other overlays, etc.)
  • Then, run Cairo-Dock using this command (in a terminal or with a shortcut like Alt+F2):
    ddd cairo-dock
  • In DDD, Click on the button 'Run' (or Program / Run or the shortcut 'F2')
  • Reproduce the crash.
  • Finally, create a screenshot of ddd Status/Backtrace Windows (enlarged if needed) and give us a link toward this image on the forum.
http://uppix.net/3/e/9/47e42c4a0400cd58edb366c974e22.png

  • For upload, there are servers like uppix.net, imageshark.us, etc. or you simply use our DND2Share applet.



What you should do after ?
  • When the bug is fixed :
    • If you had installed Debug packages (Ubuntu or Debian), you can remove these, which are now no longer needed :
      sudo apt-get purge cairo-dock-core-dbg libgldi3-dbg cairo-dock-plug-ins-dbg cairo-dock-plug-ins-integration-dbg
    • You can return to the previous version too, but the bug will be not fixed... . However, if a stable version is coming, it is better to use packages of your distribution, in order to be always up to date with stable versions.
      • If the Weekly PPA was added, you can de-activate it and eventually return to previous versions thanks to the synaptic software.
      • If the dock was compiled with the script, you can remove it with this command:
        cd /opt/cairo-dock_bzr
        ./cairo-dock_bzr.sh
        (use option 3 for removing - don't forget to reinstall the dock with our PPA).
      • Or, for other distributions, use this command (running in compilation's directory)
        # make uninstall
        Then, use a previous version (reinstall with our PPA or other).
    • Or continue to use Weekly PPA or a compiled dock (up to date with the script or a bzr command)

Backtrace example with ddd :
http://uppix.net/8/9/0/81641f4d4072f2ac7681612af0820.png




A crash only at startup?
You will have to launch gdb at startup and give to it commands in a file that it will have to use:
  • Create a text file and fill it with gdb instructions to launch the application and give to you a backtrace if there is a crash.
  • Or, simply launch this command
    echo "r
    set logging on
    l
    bt full
    info frame
    info registers
    x/16i \$pc
    thread apply all bt full
    quit
    y" > ~/gdb_commands.txt
  • Now you can temporally remove the launch of Cairo-Dock at startup (by using a tool of your desktop environment in order to manage apps launched at startup) and add a new entry with this command in order to launch it at startup:
    gdb -x ~/gdb_commands.txt cairo-dock
    Note: if you're using our Cairo-Dock session, you need to override the current launcher:
    mkdir -p ~/.config/autostart/
    cp /usr/share/applications/cairo-dock.desktop ~/.config/autostart/
    Then edit this file ~/.config/autostart/cairo-dock.desktop by replacing the line with Exec by:
    Exec=gdb -x ~/gdb_commands.txt cairo-dock
    (or use the tool of your DE)
  • If you've a crash (or no dock at startup), this file should be available on your home directory: gdb.txt. Thanks to send the content to us ;)


Glx-Dock / Cairo-Dock Wiki ddd Top

Online users :

Powered by ElementSpeak © 2007 Adrien Pilleboue, 2009-2013 Matthieu Baerts.
Dock based on CSS Dock Menu (Ndesign) with jQuery. Icons by zgegball
Cairo-Dock is a free software under GNU-GPL3 licence. First stable version created by Fabounet.
Many thanks to TuxFamily for the web Hosting and Mav for the domain name.