mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-06-10 06:39:15 +02:00
valgrind currently does not work on GCC -O2 compiled executables, which contain std::optional use, due to an upstream bug. See https://bugs.kde.org/show_bug.cgi?id=472329 One workaround could be to use -O1. However, that seems brittle, as variantions of the bug were seen with -O1 as well. So temporarily use clang in the valgrind CI tasks, because this also allows to drop a false-positive suppression for: -DCMAKE_CXX_FLAGS='-Wno-error=array-bounds' Also, update the comment in contrib/valgrind.supp to mention the background: * GCC -O2 wasn't tested with the suppressions file, due to the mentioned bug. * Clang-17 (or later) on aarch64 wasn't tested due to bug https://github.com/bitcoin/bitcoin/issues/29635 and the minimum supported clang version is clang-17 right now. * GUI isn't tested, because it requires a debug build, see the prior commit. This means the only tested config right now is the one mentioned in the suppression file.
55 lines
1.6 KiB
Plaintext
55 lines
1.6 KiB
Plaintext
# This valgrind suppressions file includes known Valgrind warnings in our
|
|
# dependencies that cannot be fixed in-tree.
|
|
#
|
|
# Example use:
|
|
# $ valgrind --suppressions=test/sanitizer_suppressions/valgrind.supp build/bin/test_bitcoin
|
|
# $ valgrind --suppressions=test/sanitizer_suppressions/valgrind.supp --leak-check=full \
|
|
# --show-leak-kinds=all build/bin/test_bitcoin
|
|
#
|
|
# To create suppressions for found issues, use the --gen-suppressions=all option:
|
|
# $ valgrind --suppressions=test/sanitizer_suppressions/valgrind.supp --leak-check=full \
|
|
# --show-leak-kinds=all --gen-suppressions=all --show-reachable=yes \
|
|
# --error-limit=no build/bin/test_bitcoin
|
|
#
|
|
# Note that suppressions may depend on OS and/or library versions.
|
|
# Tested on Debian Trixie system libs,
|
|
# * using clang (only x86_64, see https://bugs.kde.org/show_bug.cgi?id=485276),
|
|
# * and GCC (only -O1, see https://bugs.kde.org/show_bug.cgi?id=472329),
|
|
# without gui (because it only passes with a DEBUG=1 depends build).
|
|
{
|
|
Suppress leaks on shutdown
|
|
Memcheck:Leak
|
|
...
|
|
fun:_Z8ShutdownR11NodeContext
|
|
}
|
|
{
|
|
Suppress leveldb leak
|
|
Memcheck:Leak
|
|
match-leak-kinds: reachable
|
|
fun:_Znwm
|
|
...
|
|
fun:_ZN7leveldb6DBImpl14BackgroundCallEv
|
|
}
|
|
{
|
|
Suppress leveldb leak
|
|
Memcheck:Leak
|
|
fun:_Znwm
|
|
...
|
|
fun:GetCoin
|
|
}
|
|
{
|
|
Suppress LogInstance still reachable memory warning
|
|
Memcheck:Leak
|
|
match-leak-kinds: reachable
|
|
fun:_Znwm
|
|
fun:_Z11LogInstancev
|
|
}
|
|
{
|
|
Suppress BCLog::Logger::StartLogging() still reachable memory warning
|
|
Memcheck:Leak
|
|
match-leak-kinds: reachable
|
|
fun:malloc
|
|
...
|
|
fun:_ZN5BCLog6Logger12StartLoggingEv
|
|
}
|