|
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 ppa Weekly, 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 cairo-dock-core-dbg libgldi3-dbg cairo-dock-plug-ins-dbg cairo-dock-plug-ins-integration-dbg
- For Debian users (and Ubuntu if you want to compile the dock or in case we ask you), the compilation is made very easy thanks to this script.
- 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, edit 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 (...))
Backtrace 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):
- 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.
- For upload, there are servers like uppix.net, imageshark.us, etc. or you simply use our DND2Share applet.
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 directorycd
gdb cairo-dock
#> now you're in the gdb prompt
run
#> simply reproduce the crash
set logging on
l
bt full
#> then press Enter until the end of the backtrace
info frame
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:
What you should do after ? - When the bug is fixed :
- If you had installed Debug packages (Ubuntu), 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) 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 :
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
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
- 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 ;)
|
|