From 9ee2afa0f7ce9b671b00db8e05102654a099ea61 Mon Sep 17 00:00:00 2001 From: gengjiawen Date: Mon, 23 Mar 2020 20:07:29 +0800 Subject: [PATCH] doc: add ASAN build instructions PR-URL: https://github.com/nodejs/node/pull/32436 Reviewed-By: James M Snell Reviewed-By: Matheus Marchini --- BUILDING.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/BUILDING.md b/BUILDING.md index 469a4f9281db88..70b405133ba082 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) @@ -490,6 +491,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.