Lot's of small bugfixes for logging
[olsrd.git] / valgrind-howto.txt
1 Valgrind is a powerful tool for performance and correctness analysis of code.
2 This mini-howto discusses how to set your development environment up,
3 such that you can profile or leakcheck a running olsr daemon and later analyze its
4 recordings using a graphical frontend called Kcachegrind.
5
6 First change your makefile.inc such that the debug symbols are not removed after
7 compilation
8
9     # set DEBUG to 1 to add debugger symbols to olsrd and filename/linenumbers to logging
10     # set DEBUG to 0 to remove both and optimize olsrd for size
11     DEBUG ?= 1
12
13     # set to 1 to remove a severity level of logging from olsrd
14     NO_LOG_DEBUG ?= 0
15     NO_LOG_INFO  ?= 0
16     NO_LOG_WARN  ?= 0
17     NO_LOG_ERROR ?= 0
18
19 valgrind for profiling:
20
21   run valgrind with the following command line options.
22
23   valgrind --tool=callgrind -v --dump-instr=yes --trace-jump=yes ./olsrd -d 0 -nofork
24
25   Finally load kcachgrind to display the profiling data. (watch out the callgrind
26   data are written with a umask of 600 as user root - so you may want to chown or
27   chmod the file, otherwise kcachegrind cannot open your data and will display an
28   empty screen)
29
30 valgrind for memory checking:
31
32   valgrind --tool=memcheck --leak-check=full --show-reachable=yes ./olsrd --nofork -f /etc/olsrd.conf -d 0