For a subset of GNOME modules, I’m still using jhbuild. I also spend a great deal of time tracking down memory bugs in various libraries. So it is very handy to have libasan.so
working with meson -Db_sanitize=address
.
To make things work, you currently need to:
- dnf install libasan liblsan (or similar for your OS).
- Use meson from git (0.48 development), for this bug fix.
- Configure your meson projects with
-Db_sanitize=address
. - Create a suppression file for leaks out of our control.
- Set some environment variables in
~/.config/jhbuildrc
.
Here is an example of what I put in ~/.config/lsan_suppressions.txt
.
leak:FcCharSetCreate leak:FcLangSetCreate leak:__nptl_deallocate_tsd leak:_g_info_new_full leak:dconf_engine_watch_fast leak:g_get_language_names_with_category leak:g_intern_string leak:g_io_module_new leak:g_quark_init leak:libfontconfig.so.1
And add this to ~/.config/jhbuildrc
.
import os os.environ['LSAN_OPTIONS'] = 'suppressions=' + \ os.path.expanduser('~/.config/lsan_suppressions.txt')
This has helped me track down a number of bugs in various modules this week and it would be useful if other people were doing it too.