From 79538c68bd37e0ee1df1d185609fabd5a4f1bd22 Mon Sep 17 00:00:00 2001 From: DL6ER Date: Sun, 15 Jan 2023 13:43:35 +0100 Subject: [PATCH 1/2] Update valgrind one-liner to use option "--log-file" instead of a redirection. Signed-off-by: DL6ER --- docs/ftldns/valgrind.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/ftldns/valgrind.md b/docs/ftldns/valgrind.md index b3a23a7..296f2bd 100644 --- a/docs/ftldns/valgrind.md +++ b/docs/ftldns/valgrind.md @@ -44,13 +44,13 @@ They'll automatically be re-added when using `sudo service pihole-FTL start` nex We suggest the following one-liner to run `pihole-FTL` in `memcheck`: ``` -sudo rm /dev/shm/FTL-*; sudo valgrind --trace-children=yes --leak-check=full --track-origins=yes -s /usr/bin/pihole-FTL &> valgrind.log +sudo service pihole-FTL stop && sudo setcap -r /usr/bin/pihole-FTL && sudo valgrind --trace-children=yes --leak-check=full --track-origins=yes --log-file=valgrind.log -s /usr/bin/pihole-FTL ``` If you compile FTL from source, use ``` -sudo rm /dev/shm/FTL-*; ./build.sh && sudo valgrind --trace-children=yes --leak-check=full --track-origins=yes -s ./pihole-FTL &> valgrind.log +./build.sh && sudo service pihole-FTL stop && sudo setcap -r /usr/bin/pihole-FTL && sudo valgrind --trace-children=yes --leak-check=full --track-origins=yes --log-file=valgrind.log -s ./pihole-FTL ``` The used options are: From 3bf22e7ce1ad621aea477fb1be40dbb6b52edb39 Mon Sep 17 00:00:00 2001 From: DL6ER Date: Sun, 15 Jan 2023 13:48:59 +0100 Subject: [PATCH 2/2] Add correct TERMination command Signed-off-by: DL6ER --- docs/ftldns/valgrind.md | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/docs/ftldns/valgrind.md b/docs/ftldns/valgrind.md index 296f2bd..bde9b05 100644 --- a/docs/ftldns/valgrind.md +++ b/docs/ftldns/valgrind.md @@ -44,13 +44,27 @@ They'll automatically be re-added when using `sudo service pihole-FTL start` nex We suggest the following one-liner to run `pihole-FTL` in `memcheck`: ``` -sudo service pihole-FTL stop && sudo setcap -r /usr/bin/pihole-FTL && sudo valgrind --trace-children=yes --leak-check=full --track-origins=yes --log-file=valgrind.log -s /usr/bin/pihole-FTL +sudo service pihole-FTL stop && sudo setcap -r /usr/bin/pihole-FTL +sudo valgrind --trace-children=yes --leak-check=full --track-origins=yes --log-file=valgrind.log -s /usr/bin/pihole-FTL ``` If you compile FTL from source, use ``` -./build.sh && sudo service pihole-FTL stop && sudo setcap -r /usr/bin/pihole-FTL && sudo valgrind --trace-children=yes --leak-check=full --track-origins=yes --log-file=valgrind.log -s ./pihole-FTL +sudo service pihole-FTL stop && sudo setcap -r /usr/bin/pihole-FTL +./build.sh && sudo valgrind --trace-children=yes --leak-check=full --track-origins=yes --log-file=valgrind.log -s ./pihole-FTL +``` + +The most useful information (about which memory is *possibly* and which is *definitely* lost) is written to `valgrind.log` at the end of the analysis. Terminate FTL by running: + +```bash +sudo kill -TERM $(cat /var/run/pihole-FTL.pid) +``` + +and immediately restart it (and fix permissions) using + +```bash +sudo service pihole-FTL start ``` The used options are: