From 6ab74c6b093895c92f123872eb060b01acb80dca Mon Sep 17 00:00:00 2001 From: Johannes Altmanninger Date: Fri, 12 Jan 2024 09:22:01 +0100 Subject: [PATCH] Human-readable ASAN stack traces CI Show file names, line numbers and function names in ASAN stack traces (instead of object file + raw memory address). --- .github/workflows/main.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 97106ba21..49ae2be23 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -115,7 +115,10 @@ jobs: # UPDATE: this can cause spurious leak reports for __cxa_thread_atexit_impl() under glibc. LSAN_OPTIONS: verbosity=0:log_threads=0:use_tls=1:print_suppressions=0 run: | - env LSAN_OPTIONS="$LSAN_OPTIONS:suppressions=$PWD/build_tools/lsan_suppressions.txt" make test + llvm_version=$(clang --version | awk 'NR==1 { split($NF, version, "."); print version[1] }') + export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer-$llvm_version + export LSAN_OPTIONS="$LSAN_OPTIONS:suppressions=$PWD/build_tools/lsan_suppressions.txt" + make test # Our clang++ tsan builds are not recognizing safe rust patterns (such as the fact that Drop # cannot be called while a thread is using the object in question). Rust has its own way of