1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-12-04 14:46:46 -05:00

Add make target my-prof.supp

This creates a "as personal as possible" Valgrind suppressions file.

Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
This commit is contained in:
Steffen Jaeckel 2024-11-21 15:32:34 +01:00
parent 57ae8c48e6
commit 67922ae4d9
4 changed files with 76 additions and 0 deletions

1
.gitignore vendored
View File

@ -73,6 +73,7 @@ toc_fragment.html
# valgrind files
valgrind.out
my-prof.supp
# Generate docs
apidocs/python/_build/

View File

@ -110,6 +110,12 @@ We provide a suppressions file `prof.supp`. It is a combination of the suppressi
`G_DEBUG=gc-friendly G_SLICE=always-malloc valgrind --tool=memcheck --track-origins=yes --leak-check=full --leak-resolution=high --num-callers=30 --show-leak-kinds=definite --log-file=profval --suppressions=prof.supp ./profanity`
There's also the option to create a "personalized" suppression file with the up-to-date glib2 and python suppressions.
`make my-prof.supp`
After executing this, you can replace the `--suppressions=prof.supp` argument in the above call, by `--suppressions=my-prof.supp`.
### clang
Running the clang static code analyzer helps improving the quality too.

View File

@ -343,6 +343,14 @@ clean-local:
rm -f $(git_include) $(git_include).in
endif
.PHONY: my-prof.supp
my-prof.supp:
@sed '/^# AUTO-GENERATED START/q' prof.supp > $@
@cat /usr/share/glib-2.0/valgrind/glib.supp >> $@
@wget -O- https://raw.githubusercontent.com/python/cpython/refs/tags/v`python3 --version | cut -d' ' -f2`/Misc/valgrind-python.supp >> $@
@wget -O- https://raw.githubusercontent.com/GNOME/gtk/refs/tags/`pkg-config --modversion gtk+-3.0`/gtk.supp >> $@
@cat /usr/share/gtk-3.0/valgrind/gtk.supp >> $@
check-unit: tests/unittests/unittests
tests/unittests/unittests

View File

@ -23,6 +23,13 @@
fun:gtk_init_check
...
}
{
gtk_module_init
Memcheck:Leak
...
fun:gtk_module_init
...
}
# glib
@ -43,7 +50,61 @@
fun:omemo_crypto_init
...
}
{
gcry_mpi_scan
Memcheck:Leak
...
fun:gcry_mpi_scan
...
}
# libreadline related
{
leak readline
Memcheck:Leak
...
fun:readline
}
{
leak add_history
Memcheck:Leak
...
fun:add_history
}
{
leak rl_make_bare_keymap
Memcheck:Leak
...
fun:rl_make_bare_keymap
}
{
leak rl_add_funmap_entry
Memcheck:Leak
...
fun:rl_add_funmap_entry
}
{
leak rl_initialize
Memcheck:Leak
...
fun:rl_initialize
}
# Python related
{
Handle PyMalloc confusing valgrind (possibly leaked)
Memcheck:Leak
...
fun:_PyObject_GC_New
}
{
Handle PyMalloc confusing valgrind (possibly leaked)
Memcheck:Leak
...
fun:PyType_Ready
}
# AUTO-GENERATED START
# GLib Valgrind suppressions file
#