There are two ways in which you can help diagnose a fatal bug (such as a crash):
Compile tint2 in release mode with stack trace support enabled, then tint2 will save a stack trace in ~/.tint2-crash.log (and also in the terminal) when it crashes;
Compile tint2 in debug mode and run it in a debugger.
Obtaining a stack trace in release (i.e. optimized) mode
Versions of tint2 starting from 0.12.4 print a stack trace in ~/.tint2-crash.log and in the terminal from which tint2 was started.
However this must have been enabled during compilation; if you don't see the ~/.tint2-crash.log file it means it was disabled in your distribution's package. In this case you must compile and install tint2 from source and enable stack trace support, simply by changing the cmake step to:
in debug mode, there are no code optimizations so tint2 will be slower (this might prevent the bug from being reproduced);
you have to start tint2 in a debugger (gdb) which is a bit inconvenient;
running tint2 in a debugger makes it slow.
Please install the dependencies and download the tint2 sources as explained in the Install page.
Compile in debug mode
Do not run make install!
cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_VERBOSE_MAKEFILE=ON ..
Run tint2 in debugger
From the build directory, run:
Obtaining a stack trace
If tint2 receives a signal or crashes, a (gdb) prompt will appear. If there is no prompt but tint2 is hanged, you can press Ctrl+C to interrupt execution manually and cause a prompt to appear.
In the prompt, type bt and press Enter; a stack trace will be displayed. For example:
Program received signal SIGINT, Interrupt.
0x00007ffff5178633 in __select_nocancel () at ../sysdeps/unix/syscall-template.S:82
82 in ../sysdeps/unix/syscall-template.S
#0 0x00007ffff5178633 in __select_nocancel () at ../sysdeps/unix/syscall-template.S:82
#1 0x0000000000414f0b in main ()
Copy this text and paste it in your bug report.
Obtaining a core dump
Note: This does not work with -DENABLE_ASAN=ON in the cmake step.
In the (gdb) prompt, run generate-core-file. A core.xxxxx file will be generated in the build directory. Exit gdb with the command q. Then compress the core dump and the tint2 executable like this:
zip core.zip core.*
zip core.zip tint2
You can provide us the core.zip file.
Important: the core dump will contain the entire memory contents of tint2, including the titles of the windows shown in the taskbar and possibly a section of the desktop background below tint2. Please make sure no personal or sensitive information is contained before sending the core dump to anyone.
Debugging panel geometry issues
Set the environment variable DEBUG_GEOMETRY when starting tint2: