You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/sanitizers/asan-known-issues.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
2
title: "AddressSanitizer known issues and limitations"
3
3
description: "Technical description of the AddressSanitizer for Microsoft C/C++ known issues."
4
-
ms.date: 5/14/2025
4
+
ms.date: 5/21/2025
5
5
helpviewer_keywords: ["AddressSanitizer known issues"]
6
6
---
7
7
@@ -12,7 +12,7 @@ helpviewer_keywords: ["AddressSanitizer known issues"]
12
12
13
13
## <aname="incompatible-options"></a> Incompatible options and functionality
14
14
15
-
These options and functionality are incompatible with [`/fsanitize=address`](../build/reference/fsanitize.md) and should be disabled or avoided.
15
+
The following options and functionality are incompatible with [`/fsanitize=address`](../build/reference/fsanitize.md) and should be disabled or avoided.
16
16
17
17
- The [`/RTC`](../build/reference/rtc-run-time-error-checks.md) options are incompatible with AddressSanitizer and should be disabled.
18
18
-[Incremental linking](../build/reference/incremental-link-incrementally.md) is unsupported, and should be disabled.
@@ -26,9 +26,9 @@ These options and functionality are incompatible with [`/fsanitize=address`](../
26
26
27
27
## Standard library support
28
28
29
-
The MSVC standard library (STL) is partially enlightened to understand the AddressSanitizer and provide other checks. For more information, see [container-overflow error](./error-container-overflow.md).
29
+
The MSVC standard library (STL) makes partial use of the AddressSanitizer and provides other code safety checks. For more information, see [container-overflow error](./error-container-overflow.md).
30
30
31
-
When annotations are disabled or in versions without support, AddressSanitizer exceptions raised in STL code do still identify true bugs. However, they aren't as precise as they could be.
31
+
When annotations are disabled, or in versions of the Standard Library that don't support them, AddressSanitizer exceptions raised in STL code still identify real bugs. However, they are more precise if annoations are enabled and you use a version of the Standard Library that supports them.
32
32
33
33
This example demonstrates the lack of precision and the benefits of enabling annotations:
34
34
@@ -81,11 +81,11 @@ Thread local variables (global variables declared with `__declspec(thread)` or `
81
81
82
82
## Loading and unloading DLLs
83
83
84
-
If the entire process is not compiled with `/fsanitize=address`, there may be limitations in ASan's ability to diagnose memory safety errors. The most common example is when a DLL is compiled with ASan and loaded into a process that **was not**compiled with ASan. In this case, ASan will attempt to categorize allocations that took place prior to ASan initialization. If those allocations are transformed in any way (reallocated, moved, etc.), ASan will then attempt to own and monitor the lifetime and memory loads/stores.
84
+
If all of the code in a process isn't compiled with `/fsanitize=address`, ASan may not be able to diagnose all memory safety errors. The most common example is when a DLL is compiled with ASan but is loaded into a process that contains code that wasn't compiled with ASan. In this case, ASan attempts to categorize allocations that took place prior to ASan initialization. But if those allocations are reallocated, moved, and so on, ASan tries to own and monitor the lifetime of memory loads and stores.
85
85
86
-
In the event that all DLLs compiled with ASan leave the process before the end of its execution (like in the event of test drivers such as [TAEF](https://learn.microsoft.com/en-us/windows-hardware/drivers/taef/)), there may dangling references to intercepted functions (`memcmp`, `memcpy`, `memmove`, etc.), and may result in crashes. This is a current limitation with these configurations and unloading DLLs.
86
+
If all of the DLLs that were compiled with ASan are unloaded from the process before the process ends (as is the case with test drivers such as [TAEF](https://learn.microsoft.com/en-us/windows-hardware/drivers/taef/)), there may be crashes due to dangling references to intercepted functions such as `memcmp`, `memcpy`, `memmove`, and so on.
87
87
88
-
Please [report any bugs](https://aka.ms/feedback/report?space=62) if you experience them.
88
+
Please report any bugs to our [Developer Community](https://aka.ms/feedback/report?space=62).
0 commit comments