3 This page enumerates various techniques useful for debugging ISC DHCP software.
5 @section debugTips Debugging Tips & Tricks
7 ISC DHCP code is somewhat convoluted. Due to extensive macros use, it is often
8 difficult to even find whole function, much less to understand what they
9 actually do. One way to find such a macro-defined function is to compile the
10 code with debugging symbols (-g), load the binary into gdb and set a breakpoint
11 for such a function. gdb will print out exact place in the code where the
12 function is defined. Presumably one will find a macro at that specific location.
13 For example to find where \ref lease_reference function is defined do:
21 DEBUG_MEMORY_LEAKAGE may be defined in includes/site.h to enable some debugging
22 code to help with debugging memory issues. This code keeps a running total
23 of the outstanding memory that has been allocated and a list of the outstanding
24 allocations. Both are updated whent he memory is freed. Status information is
25 printed when do_packet() and do_packet6() complete processing. The outstanding
26 value is expected to grow when new structures are used - for example when a new
27 IPv6 lease is created. It is not expected to grow when a structure is reused
28 for example when an IPv6 lease is renewed.
30 DEBUG_RC_HISTORY and DEBUG_RC_HISTORY_EXHAUSTIVELY can also be defined to provide
31 more verbose information about reference counts on objects.