How to run gdb on Cyrus components¶
An easy way to debug something in a service daemon is to write a
Cassandane test that tries to reproduce the
bug. Cassandane has a [gdb]
section in cassandane.ini which allows for
starting service daemons in a debugger.
The cassandane.ini.example in the cassandane repository contains examples and instructions.
For programs that aren't service daemons, there are two options:
If they are installed, run them with gdb. You might need to use sudo
depending on permissions. If they haven't been installed (and you're in the
source/build tree), you need to run gdb from libtool
in order for everything
to work.
For example, if you wanted to debug cyr_virusscan:
$ libtool --mode=execute gdb imap/cyr_virusscan
Command line arguments for a tool you're debugging, must be given to gdb before you run. Use something like set args [ ... ].