summaryrefslogtreecommitdiff
path: root/Meta
diff options
context:
space:
mode:
authorBen Wiederhake <BenWiederhake.GitHub@gmx.de>2021-01-30 00:42:32 +0100
committerAndreas Kling <kling@serenityos.org>2021-01-30 09:23:18 +0100
commit648f15395117a6a531415008e38e64e8ca90c837 (patch)
tree559fb13f59637e2a2f72f8c4a29736af478f1481 /Meta
parent1cbc01e288efc1d953f4a3908a650fc346d0caeb (diff)
downloadserenity-648f15395117a6a531415008e38e64e8ca90c837.zip
Lagom/Fuzzers: Recommend enabling UBSan, extend instructions
Diffstat (limited to 'Meta')
-rw-r--r--Meta/Lagom/ReadMe.md14
1 files changed, 13 insertions, 1 deletions
diff --git a/Meta/Lagom/ReadMe.md b/Meta/Lagom/ReadMe.md
index 4a94ff91be..82558627d4 100644
--- a/Meta/Lagom/ReadMe.md
+++ b/Meta/Lagom/ReadMe.md
@@ -18,7 +18,7 @@ Lagom can be used to fuzz parts of SerenityOS's code base. This requires buildli
# From the root of the SerenityOS checkout:
mkdir BuildLagom && cd BuildLagom
- cmake -GNinja -DBUILD_LAGOM=ON -DENABLE_FUZZER_SANITIZER=ON -DENABLE_ADDRESS_SANITIZER=ON -DCMAKE_CXX_COMPILER=clang++ ..
+ cmake -GNinja -DBUILD_LAGOM=ON -DENABLE_FUZZER_SANITIZER=ON -DENABLE_ADDRESS_SANITIZER=ON -DENABLE_UNDEFINED_SANITIZER=ON -DCMAKE_CXX_COMPILER=clang++ ..
ninja Meta/Lagom/all
# Or as a handy rebuild-rerun line:
ninja FuzzJs && Meta/Lagom/Fuzzers/FuzzJs
@@ -110,3 +110,15 @@ __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50 ../sysdeps/unix/sysv/linux/raise.c: File or directory not found.
(gdb)
```
+
+UBSan doesn't always give useful information. use something like `export UBSAN_OPTIONS=print_stacktrace=1` to always print stacktraces.
+
+You may run into annoying issues with the stacktrace:
+
+```
+==123456==WARNING: invalid path to external symbolizer!
+==123456==WARNING: Failed to use and restart external symbolizer!
+```
+
+That means it couldn't find the executable `llvm-symbolizer`, which could be in your OS's package `llvm`.
+`llvm-symbolizer-11` will [not be recognized](https://stackoverflow.com/a/42845444/).