Being a security critical application, it is vital isakmpd be as bug-free as possible. All software contains bugs, and all development creates new ones. Recognizing that, we have chosen to make debugging a more pleasant task than it usually is. Normally isakmpd detaches from the controlling terminal and logs only exceptional conditions to the syslog facility. However, in order to be able to run under a normal debugger, it is possible to run in the foreground, sending logging messages to stderr instead. As we have already mentioned, the logging module has a fine-grained control mechanism making it easy to chose detailed information on certain topics. In order to ease problem pinpointing, almost every intermediary computation can be logged.
The build environment also contains instructions on how to build isakmpd with two different memory allocation debugging tools: ElectricFence, for finding buffer overflows and use after deallocation, and Boehm's garbage collector to find memory leaks. We periodically run with these tools to test for such problems.