GeezerVison is showing github.com — doc: add ASAN build instructions · nodejs/node@9ee2afa
File tree
Expand file treeCollapse file tree
Open diff view settings
Expand file treeCollapse file tree
Open diff view settings
Collapse file
Copy file name to clipboardExpand all lines: BUILDING.md +17Lines changed: 17 additions & 0 deletions - Display the source diff
- Display the rich diff
| Original file line number | Diff line number | Diff line change |
|---|
@@ -28,6 +28,7 @@ file a new issue. |
28 | 28 | * [Running Coverage](#running-coverage) |
29 | 29 | * [Building the documentation](#building-the-documentation) |
30 | 30 | * [Building a debug build](#building-a-debug-build) |
| 31 | + * [Building an ASAN build](#building-an-asan-build) |
31 | 32 | * [Troubleshooting Unix and macOS builds](#troubleshooting-unix-and-macos-builds) |
32 | 33 | * [Windows](#windows) |
33 | 34 | * [Prerequisites](#prerequisites) |
@@ -490,6 +491,22 @@ $ gdb /opt/node-debug/node core.node.8.1535359906 |
490 | 491 | $ backtrace |
491 | 492 | ``` |
492 | 493 |
|
| 494 | +#### Building an ASAN build |
| 495 | + |
| 496 | +[ASAN](https://github.com/google/sanitizers) can help detect various memory |
| 497 | +related bugs. ASAN builds are currently only supported on linux. |
| 498 | +If you want to check it on Windows or macOS or you want a consistent toolchain |
| 499 | +on Linux, you can try [Docker](https://www.docker.com/products/docker-desktop) |
| 500 | + (using an image like `gengjiawen/node-build:2020-02-14`). |
| 501 | + |
| 502 | +The `--debug` is not necessary and will slow down build and testing, but it can |
| 503 | +show clear stacktrace if ASAN hits an issue. |
| 504 | + |
| 505 | +``` console |
| 506 | +$ ./configure --debug --enable-asan && make -j4 |
| 507 | +$ make test-only |
| 508 | +``` |
| 509 | + |
493 | 510 | #### Troubleshooting Unix and macOS builds |
494 | 511 |
|
495 | 512 | Stale builds can sometimes result in `file not found` errors while building. |
|