Skip to content

Commit b1c1fdb

Browse files
committed
Taking runtime grammar changes from Matt
1 parent 5e8b1f1 commit b1c1fdb

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

docs/sanitizers/asan-runtime.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ helpviewer_keywords: ["ASan","sanitizers","AddressSanitizer","Address Sanitizer"
88

99
# AddressSanitizer Runtime
1010

11-
The AddressSanitizer runtime library installs replacement functions; interceptors, for common memory allocation and memory manipulation functions. There are a number of different runtime libraries that facilitate this for the various types of executables the compiler may generate. The compiler and linker will link the appropriate runtime libraries so long as the /fsanitize=address flag is passed at compile time. This default functionality can be overrided with the flag `/nodefaultlib` at link time. See the section on [linking](./asan-building.md#Linker) for further detail.
11+
The AddressSanitizer runtime library intercepts common memory allocation functions and operations to enable inspection of memory accesses. There are a number of different runtime libraries that facilitate this for the various types of executables the compiler may generate. The compiler and linker will link the appropriate runtime libraries so long as the /fsanitize=address flag is passed at compile time. This default functionality can be overrided with the flag `/nodefaultlib` at link time. See the section on [linking](./asan-building.md#Linker) for further detail.
1212

1313
Below is an inventory of runtime libraries for linking to the Address Sanatizer runtime, where `arch` is either `i386` or `x86_64`.
1414

@@ -28,7 +28,7 @@ When compiling with `cl -fsanitize=address`, the compiler generates instructions
2828

2929
## Function interception
3030

31-
Interception is achieved through **many hot-patching techniques**, [these techniques are best documented within the source code itself.](https://github.com/llvm/llvm-project/blob/1a2eaebc09c6a200f93b8beb37130c8b8aab3934/compiler-rt/lib/interception/interception_win.cpp#L11)
31+
Interception is achieved through many hot-patching techniques, [these techniques are best documented within the source code itself.](https://github.com/llvm/llvm-project/blob/1a2eaebc09c6a200f93b8beb37130c8b8aab3934/compiler-rt/lib/interception/interception_win.cpp#L11)
3232

3333
The runtime libraries intercept many common memory management and memory manipulation functions. [A complete list of intercepted functions is available below.](#AddressSanitizer-list-of-intercepted-functions-(Windows)) The allocation interceptors manage metadata and shadow bytes related to each allocation call. Every time a CRT function like malloc() or delete() are called, the interceptors set specific values in the AddressSanitizer shadow-memory region to indicate whether those heap locations are currently accessible and what are the bounds of the allocation are. These shadow bytes allow the compiler-generated checks of the [shadow-bytes](./asan-shadowbytes.md) to determine whether a load or store is valid.
3434

0 commit comments

Comments
 (0)