etc/protocols - sync with NetBSD-8
[minix.git] / external / bsd / dhcp / dist / doc / devel / debug.dox
blobf9f4696ae100d0d2bd293149563395dabb2033bf
1 /**
2  @page debug Debugging
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:
15 @verbatim
16 gdb
17 file dhcpd
18 b lease_reference
19 @endverbatim
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.