AddressSanitizer

E292715

AddressSanitizer is a fast memory error detector that instruments programs to find issues like buffer overflows and use-after-free bugs at runtime.

All labels observed (1)

Label Occurrences
AddressSanitizer canonical 6

How this entity was disambiguated

Statements (51)

Predicate Object
instanceOf dynamic analysis tool
memory error detector
runtime instrumentation tool
configuration ASAN_OPTIONS environment variable
detects buffer overflow
double-free
global buffer overflow
heap buffer overflow
invalid free
memory leaks (with LeakSanitizer integration)
stack buffer overflow
stack-use-after-scope (in some configurations)
use-after-free
use-after-return
developedBy Google
goal find memory errors in C and C++ programs
hasComponent compiler instrumentation passes
runtime library
introducedIn LLVM 3.1 (initial integration timeframe)
invocationFlag -fsanitize=address (Clang)
-fsanitize=address (GCC)
license Apache License 2.0 with LLVM exceptions
surface form: Apache License 2.0 (via LLVM)
limitation does not detect all uninitialized memory reads
requires recompilation of the program with sanitizer flags
partOf LLVM
surface form: LLVM project
programmingLanguage C
C++
Objective-C
Objective-C++
property low runtime overhead compared to other memory checkers
relatedTo LeakSanitizer
MemorySanitizer
ThreadSanitizer
reports detailed error messages with stack traces
location of invalid memory access
type of memory error
runsAt runtime
supportedBy Clang
GNU Compiler Collection
surface form: GCC
supportsPlatform Android NDK
surface form: Android (via NDK/Clang)

Linux
Windows (via ports such as MinGW and Cygwin)
surface form: Windows (via Clang/LLVM)

macOS
typicalOverhead about 2x memory usage
about 2x runtime slowdown (approximate)
usedFor debugging memory corruption bugs
hardening software during testing
usesTechnique compiler-based instrumentation
poisoning and unpoisoning memory regions
red zones around objects
shadow memory

How these facts were elicited

Referenced by (6)

Full triples — surface form annotated when it differs from this entity's canonical label.

LLVM hasComponent AddressSanitizer
compiler-rt supports AddressSanitizer
ThreadSanitizer relatedTo AddressSanitizer
MemorySanitizer relatedTo AddressSanitizer
DataFlowSanitizer relatedTo AddressSanitizer
SanitizerCoverage commonlyUsedWith AddressSanitizer