Wireshark mailing list archives
Re: Memory leak debugging - current master passes all tests!
From: Peter Wu <peter () lekensteyn nl>
Date: Wed, 30 Jan 2019 12:19:27 +0100
On Tue, Jan 29, 2019 at 08:59:30AM +0100, Dario Lombardo wrote:
This does not mean that there are no more memory leaks though (we have pretty bad test coverage)Have you ever tried to compute the coverage with, eg., gcov/lcov? I'm working on it but it's still a WIP. There are also public platforms (as coveralls) that help keeping track of it over time/over history.
I have used a coverage checker (llvm-cov) during development of a single dissector, but not the whole project. From my notes: # epan/dissectors/CMakeList.txt after "set_target_properties(dissectors PROPERTIES" set(COV_FLAGS "-fprofile-instr-generate -fcoverage-mapping") set(COV_FLAGS "${COV_FLAGS}" PARENT_SCOPE) set_source_files_properties(packet-wireguard.c PROPERTIES COMPILE_FLAGS "${WERROR_COMMON_FLAGS} ${COV_FLAGS}") # epan/CMakeLists.txt after "set_target_properties(epan PROPERTIES" set_target_properties(epan PROPERTIES LINK_FLAGS "${WS_LINK_FLAGS} ${COV_FLAGS}") # run program and check results with llvm-profdata merge -sparse default.profraw -o default.profdata llvm-cov show \ /tmp/wsbuild/epan/dissectors/CMakeFiles/dissectors.dir/packet-wireguard.c.o \ -instr-profile=default.profdata -use-color=1 \ /tmp/wireshark/epan/dissectors/packet-wireguard.c | less -R Though even without using external tools, a good starting point would be adding basic tests for everything that uses a UAT. Stig recently fixed some memleaks in packet-lwm2mtlv.c which were not caught by tests... because there were none! ;) On Tue, Jan 29, 2019 at 09:15:50AM -0500, Jeff Morriss wrote:
Nice info. I had wondered at some points how to run ASAN but not enough to do the (probably minimal) research. Could I suggest putting the info in a Wiki page? (When I look for info I look in the READMEs and the wiki; I rarely search the email archives unless I remember what I was looking for being there.)
I think I have found an appropriate place for it here: https://wiki.wireshark.org/Development/Tips#Debugging_using_AddressSanitizer https://wiki.wireshark.org/Development/Tips#Running_dumpcap_on_Linux_as_unprivileged_user Feel free to make more edits as needed :) -- Kind regards, Peter Wu https://lekensteyn.nl ___________________________________________________________________________ Sent via: Wireshark-dev mailing list <wireshark-dev () wireshark org> Archives: https://www.wireshark.org/lists/wireshark-dev Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev mailto:wireshark-dev-request () wireshark org?subject=unsubscribe
Current thread:
- Memory leak debugging - current master passes all tests! Peter Wu (Jan 28)
- Re: Memory leak debugging - current master passes all tests! Jaap Keuter (Jan 28)
- Re: Memory leak debugging - current master passes all tests! Dario Lombardo (Jan 29)
- Re: Memory leak debugging - current master passes all tests! Jeff Morriss (Jan 29)
- Re: Memory leak debugging - current master passes all tests! Peter Wu (Jan 30)