diff options
author | Wladimir J. van der Laan <laanwj@gmail.com> | 2017-11-13 14:59:29 +0100 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@gmail.com> | 2017-11-13 15:00:45 +0100 |
commit | 927e5280bdba1cf9303218c6f3e34a63556e8d39 (patch) | |
tree | e9903607c35ebcec395403dba678d0ac3899162e /doc/developer-notes.md | |
parent | 7fbf3c638f3fe5d1dac37779f7df9c17b0280792 (diff) | |
parent | 4a426d89002034ed1c127624cae95b4a7f540dd1 (diff) |
Merge #11035: [contrib] Add Valgrind suppressions file
4a426d8 Add note about Valgrind suppressions file in developer-notes.md (practicalswift)
84e2462 contrib: Add Valgrind suppressions file (practicalswift)
Pull request description:
Includes known Valgrind warnings in our dependencies that cannot be fixed in-tree.
Example use:
```
$ valgrind --suppressions=contrib/valgrind.supp src/test/test_bitcoin
$ valgrind --suppressions=contrib/valgrind.supp --leak-check=full \
--show-leak-kinds=all src/test/test_bitcoin --log_level=test_suite
```
Running with the suppressions file under Ubuntu 16.04:
```
$ valgrind --suppressions=contrib/valgrind.supp --leak-check=full --show-leak-kinds=all src/test/test_bitcoin --log_level=test_suite --run_test=wallet_crypto
…
==10769== LEAK SUMMARY:
==10769== definitely lost: 0 bytes in 0 blocks
==10769== indirectly lost: 0 bytes in 0 blocks
==10769== possibly lost: 0 bytes in 0 blocks
==10769== still reachable: 0 bytes in 0 blocks
==10769== suppressed: 72,704 bytes in 1 blocks
```
Running without the suppressions file under Ubuntu 16.04:
```
$ valgrind --leak-check=full --show-leak-kinds=all src/test/test_bitcoin --log_level=test_suite --run_test=wallet_crypto
…
==10724== 72,704 bytes in 1 blocks are still reachable in loss record 1 of 1
==10724== at 0x4C2DBF6: malloc (vg_replace_malloc.c:299)
==10724== by 0x6F74EFF: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21)
==10724== by 0x40106B9: call_init.part.0 (dl-init.c:72)
==10724== by 0x40107CA: call_init (dl-init.c:30)
==10724== by 0x40107CA: _dl_init (dl-init.c:120)
==10724== by 0x4000C69: ??? (in /lib/x86_64-linux-gnu/ld-2.23.so)
==10724== by 0x2: ???
==10724== by 0x1FFF0006D2: ???
==10724== by 0x1FFF0006E8: ???
==10724== by 0x1FFF0006FF: ???
==10724==
==10724== LEAK SUMMARY:
==10724== definitely lost: 0 bytes in 0 blocks
==10724== indirectly lost: 0 bytes in 0 blocks
==10724== possibly lost: 0 bytes in 0 blocks
==10724== still reachable: 72,704 bytes in 1 blocks
==10724== suppressed: 0 bytes in 0 blocks
```
Tree-SHA512: 9c92079fc61313ea678deb6aaa16a3a71c3154c757459793eb9ca0d90a9a74c6faebfb04c9135e1b398ca34224fb7f03bd9c488ea0e8debf6894f69f030a31d3
Diffstat (limited to 'doc/developer-notes.md')
-rw-r--r-- | doc/developer-notes.md | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/doc/developer-notes.md b/doc/developer-notes.md index 33c6ab9cb3..763ab054ca 100644 --- a/doc/developer-notes.md +++ b/doc/developer-notes.md @@ -167,6 +167,21 @@ can be very difficult to track down. Compiling with -DDEBUG_LOCKORDER (configure CXXFLAGS="-DDEBUG_LOCKORDER -g") inserts run-time checks to keep track of which locks are held, and adds warnings to the debug.log file if inconsistencies are detected. +**Valgrind suppressions file** + +Valgrind is a programming tool for memory debugging, memory leak detection, and +profiling. The repo contains a Valgrind suppressions file +([`valgrind.supp`](https://github.com/bitcoin/bitcoin/blob/master/contrib/valgrind.supp)) +which includes known Valgrind warnings in our dependencies that cannot be fixed +in-tree. Example use: + +```shell +$ valgrind --suppressions=contrib/valgrind.supp src/test/test_bitcoin +$ valgrind --suppressions=contrib/valgrind.supp --leak-check=full \ + --show-leak-kinds=all src/test/test_bitcoin --log_level=test_suite +$ valgrind -v --leak-check=full src/bitcoind -printtoconsole +``` + Locking/mutex usage notes ------------------------- |