diff --git a/BUILDING.md b/BUILDING.md index cb1960db7445cf..902e96342e9386 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -28,6 +28,7 @@ file a new issue. * [Running Coverage](#running-coverage) * [Building the documentation](#building-the-documentation) * [Building a debug build](#building-a-debug-build) + * [Building an ASAN build](#building-an-asan-build) * [Troubleshooting Unix and macOS builds](#troubleshooting-unix-and-macos-builds) * [Windows](#windows) * [Prerequisites](#prerequisites) @@ -496,6 +497,22 @@ $ gdb /opt/node-debug/node core.node.8.1535359906 $ backtrace ``` +#### Building an ASAN build + +[ASAN](https://github.com/google/sanitizers) can help detect various memory +related bugs. ASAN builds are currently only supported on linux. +If you want to check it on Windows or macOS or you want a consistent toolchain +on Linux, you can try [Docker](https://www.docker.com/products/docker-desktop) + (using an image like `gengjiawen/node-build:2020-02-14`). + +The `--debug` is not necessary and will slow down build and testing, but it can +show clear stacktrace if ASAN hits an issue. + +``` console +$ ./configure --debug --enable-asan && make -j4 +$ make test-only +``` + #### Troubleshooting Unix and macOS builds Stale builds can sometimes result in `file not found` errors while building.