From d942fd9f9c9af318ecfdf39ef9eb33e34d28defa Mon Sep 17 00:00:00 2001 From: Pratik Mankawde Date: Wed, 26 Nov 2025 15:19:13 +0000 Subject: [PATCH] updated docs Signed-off-by: Pratik Mankawde --- BUILD.md | 2 +- .../{SANITIZERS_README.md => sanitizers.md} | 44 +++++++++---------- 2 files changed, 22 insertions(+), 24 deletions(-) rename docs/build/{SANITIZERS_README.md => sanitizers.md} (87%) diff --git a/BUILD.md b/BUILD.md index d28ed2a78e..4a3c0c5b5f 100644 --- a/BUILD.md +++ b/BUILD.md @@ -370,7 +370,7 @@ tools.build:cxxflags=['-DBOOST_ASIO_DISABLE_CONCEPTS'] ``` Available options for SANITIZERS: `Address` and `Thread` - More details here: [SANITIZERS_README](./docs/build/SANITIZERS_README.md) + More details here: [sanitizers](./docs/build/sanitizers.md) To build Debug, in the next step, be sure to set `-DCMAKE_BUILD_TYPE=Debug` diff --git a/docs/build/SANITIZERS_README.md b/docs/build/sanitizers.md similarity index 87% rename from docs/build/SANITIZERS_README.md rename to docs/build/sanitizers.md index af5efb7994..89013030c0 100644 --- a/docs/build/SANITIZERS_README.md +++ b/docs/build/sanitizers.md @@ -32,40 +32,38 @@ Follow the same instructions as mentioned in [BUILD.md](../../BUILD.md) but with --- -### AddressSanitizer (ASan) + UndefinedBehaviorSanitizer (UBSan) +### Build steps: ```bash -cd /path/to/rippled -rm -rf .build -mkdir .build -cd .build - -# Build with AddressSanitizer. This also builds rippled with UndefinedBehavior sanitizer. -SANITIZERS=Address conan install .. --output-folder . --profile sanitizers --build missing --settings build_type=Release -# Use `--profile:all sanitizers` if you would like to build all dependencies and libraries (boost etc.) with sanitizers. This might take long time but you won't see some false-positives on sanitizer reports since whole binary will be instrumented. - -# To build with Thread+UndefinedBehavior Sanitizer, replace `SANITIZERS=Address` with `SANITIZERS=Thread`. - -# Configure CMake -cmake .. -G Ninja -DCMAKE_TOOLCHAIN_FILE:FILEPATH=build/generators/conan_toolchain.cmake -Dunity=ON -Dtests=ON -Dxrpld=ON - -# Build -cmake --build . --parallel 4 + cd /path/to/rippled + rm -rf .build + mkdir .build + cd .build ``` -### ThreadSanitizer (TSan) + UndefinedBehaviorSanitizer (UBSan) +#### AddressSanitizer (ASan) + UndefinedBehaviorSanitizer (UBSan) + +Build with AddressSanitizer. This also builds rippled with UndefinedBehavior sanitizer. ```bash -cd /path/to/rippled -rm -rf .build -mkdir .build -cd .build +SANITIZERS=Address conan install .. --output-folder . --profile sanitizers --build missing --settings build_type=Release +``` +#### ThreadSanitizer (TSan) + UndefinedBehaviorSanitizer (UBSan) + +```bash # Build dependencies with Thread sanitizer SANITIZERS=Thread conan install .. --output-folder . --profile sanitizers --build missing --settings build_type=Release +``` + +Use `--profile:all sanitizers` if you would like to build all dependencies and libraries (boost etc.) with sanitizers. This might take long time but you won't see some false-positives on sanitizer reports since whole binary will be instrumented. + +To build with Thread+UndefinedBehavior Sanitizer, replace `SANITIZERS=Address` with `SANITIZERS=Thread`. # Configure CMake -cmake .. -G Ninja -DCMAKE_TOOLCHAIN_FILE:FILEPATH=build/generators/conan_toolchain.cmake -Dunity=ON -Dtests=ON -Dxrpld=ON -DCMAKE_BUILD_TYPE=Release + +```bash +cmake .. -G Ninja -DCMAKE_TOOLCHAIN_FILE:FILEPATH=build/generators/conan_toolchain.cmake -Dunity=ON -Dtests=ON -Dxrpld=ON # Build cmake --build . --parallel 4