Catching Memory Corruption with LLVM AddressSanitizer
Learn how LLVM's AddressSanitizer uses shadow memory and redzones to turn silent memory corruption into immediate, actionable crash reports in C/C++.
ReadMeFeed / Community knowledge
Real questions. Useful conversations. Find the people who know your stack.
Learn how LLVM's AddressSanitizer uses shadow memory and redzones to turn silent memory corruption into immediate, actionable crash reports in C/C++.
Rust's borrow checker prevents data races without garbage collection by enforcing that mutable and immutable references cannot alias the same data simultaneously.
Rust guarantees memory safety by enforcing single ownership and borrowing rules; lifetimes tie references to data, eliminating use-after-free and data races without a garbage collector.
Step‑by‑step guide to enable ARM64 Memory Tagging Extension, compile a test program with -fsanitize=memtag, and verify that memory safety faults are reported via synchronous tag‑check exceptions.
Ownership in Rust is an engineering decision about who owns data, who may read it, and how long references stay valid. Using borrowing rules to shape APIs removes use-after-free and dangling pointers at compile time.
Carbon's experimental pointer and reference model aims to make C++ interoperability memory-safe without wrapper overhead. This architecture note examines the trust boundary, operational checks, and failure modes.
Carbon aims to solve the 'rewrite' problem by providing bidirectional interoperability with C++, allowing for incremental migration without the overhead of traditional glue code.
Learn how Rust eliminates data races and use-after-free errors without a garbage collector using its unique ownership and borrowing system.
Step-by-step guide to enabling ARMv8.5-A Memory Tagging Extension (MTE) in synchronous mode on Linux: hardware/kernel prerequisites, compilation flags, runtime prctl() enablement, verification via SEGV_MTEERR faults, and phased deployment from async CI to synchronous staging.