Add a reference Valgrind suppresion file

When using Valgrind for debugging memory leaks and access violations, we
often see a lot of false positives, specially when dealing with OpenGL
that does it own buffer management. This file is an attempt to filter
these false positives.

Note that we are only filtering for the open source Radeon driver and
the list will probably grow to accommodate other setups.

To use the Valgrind with the suppression file for hunting memory leaks,
try something like:

valgrind --leak-check=full --track-origins=yes --suppressions=[path/to/valgrind.sup] ./mapbox-gl
This commit is contained in:
Thiago Marcos P. Santos
2015-03-18 16:24:55 +02:00
parent ceb7049389
commit 1ffe2dd615

91
scripts/valgrind.sup Normal file
View File

@@ -0,0 +1,91 @@
{
Valgrind gets confused with buffers managed by the graphics driver
Memcheck:Leak
...
obj:/usr/*/dri/r600_dri.so
...
}
{
GLFW _glfwCreateCursor()
Memcheck:Leak
match-leak-kinds: reachable
...
obj:/usr/*/libX11.so.6.3.0
...
fun:_glfwCreateCursor
...
}
{
GLFW _glfwPlatform*()
Memcheck:Leak
match-leak-kinds: reachable
...
fun:_glfwPlatform*
...
}
{
Buffer managed by OpenGL?
Memcheck:Cond
...
fun:_ZN4mbgl*Uniform*
...
fun:_ZN8GLFWView10invalidateEv
...
}
{
Buffer managed by OpenGL?
Memcheck:Cond
fun:_ZNSt7__equalILb0EE5equalIPKfS3_EEbT_S4_T0_
...
fun:_ZN4mbgl7Painter11renderLayerERKNS_10StyleLayerEPKNS_4Tile2IDEPKSt5arrayIfLm16EE
}
{
Valgrind doesn't like our make_unique (C++14 polyfill)
Memcheck:Leak
match-leak-kinds: reachable
fun:malloc
...
fun:_ZN4mbgl4util11make_unique*
...
}
{
dlopen doing its magic
Memcheck:Leak
match-leak-kinds: reachable
...
fun:_dl_open
...
}
{
X11 false positive
Memcheck:Leak
match-leak-kinds: reachable
...
obj:/usr/*/libX11.so.6.3.0
...
fun:_XrmInitParseInfo
...
}
{
OpenSSL false positive
Memcheck:Leak
...
fun:CRYPTO_malloc
...
}
{
OpenSSL false positive
Memcheck:Leak
...
fun:CRYPTO_realloc
...
}
{
Libcurl false positive
Memcheck:Leak
fun:malloc
...
obj:/usr/*/libcurl.so.4.3.0
fun:curl_multi_socket_action
...
}