This PR adds a couple of build variables so host builds can be compiled with the available address sanitisers.
I spent way too much time today trying to track down some odd behaviour with the graphics library virtual screen in MacOS. Since valgrind isn't available, I tried enabling some address sanitisers which I've not used before. Actually seems more effective than valgrind and is supported on both GCC and CLANG (and MacOS). Found the issue immediately.
There are a lot of possible sanitizer options so I've picked some which look most helpful. Also added stack checking. All of this obviously affects build size and runtime speed.
To try this out:
export ENABLE_SANITIZERS=1
make clean components-clean
make flash run
That's it. make list-config | grep SANITIZER will show applicable options.
NB. GCC requires the libasan and libubsan packages.
Bug in MacOS getHostAppDir
Bad len value causes memory corruption, very difficult to track down without valgrind/santizers.
Fix graphics virtual display handling with 64-bit host
Small fix found whilst hunting the above bug, affects all 64-bit builds not just MacOS.
This PR adds a couple of build variables so host builds can be compiled with the available address sanitisers.
I spent way too much time today trying to track down some odd behaviour with the graphics library virtual screen in MacOS. Since valgrind isn't available, I tried enabling some address sanitisers which I've not used before. Actually seems more effective than valgrind and is supported on both GCC and CLANG (and MacOS). Found the issue immediately.
There are a lot of possible sanitizer options so I've picked some which look most helpful. Also added stack checking. All of this obviously affects build size and runtime speed.
To try this out:
That's it.
make list-config | grep SANITIZER
will show applicable options.NB. GCC requires the
libasan
andlibubsan
packages.Bug in MacOS getHostAppDir
Bad len value causes memory corruption, very difficult to track down without valgrind/santizers.
Fix graphics virtual display handling with 64-bit host
Small fix found whilst hunting the above bug, affects all 64-bit builds not just MacOS.