msvc: add asan support (disabled by default)
This commit is contained in:
parent
79a234eff7
commit
49b9deeb03
|
@ -49,6 +49,17 @@ public:
|
|||
m_post_unprotect_time;
|
||||
};
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#define ASAN_DISABLE __declspec(no_sanitize_address)
|
||||
#else
|
||||
#define ASAN_DISABLE
|
||||
#endif
|
||||
|
||||
static void ASAN_DISABLE perform_invalid_access(void* data)
|
||||
{
|
||||
*(volatile int*)data = 5;
|
||||
}
|
||||
|
||||
TEST(PageFault, PageFault)
|
||||
{
|
||||
EMM::InstallExceptionHandler();
|
||||
|
@ -61,7 +72,7 @@ TEST(PageFault, PageFault)
|
|||
pfjit.m_data = data;
|
||||
|
||||
auto start = std::chrono::high_resolution_clock::now();
|
||||
*(volatile int*)data = 5;
|
||||
perform_invalid_access(data);
|
||||
auto end = std::chrono::high_resolution_clock::now();
|
||||
|
||||
#define AS_NS(diff) \
|
||||
|
|
|
@ -133,6 +133,9 @@
|
|||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<Optimization>Disabled</Optimization>
|
||||
</ClCompile>
|
||||
<ClCompile Condition="'$(Configuration)'=='Debug' And '$(EnableASAN)'=='true'">
|
||||
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
||||
</ClCompile>
|
||||
<!--ClCompile Release-->
|
||||
<ClCompile Condition="'$(Configuration)'=='Release'">
|
||||
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
||||
|
|
|
@ -4,6 +4,11 @@
|
|||
<PlatformToolset>v142</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
|
||||
<!-- To use ASAN, just uncomment this. For simplicity, you should run VS/windbg/etc
|
||||
(including the built executables themselves) after using vcvarsall or similar to setup
|
||||
environment, as ASAN needs access to libs and executables in the toolchain paths.
|
||||
-->
|
||||
<!--<EnableASAN>true</EnableASAN>-->
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
|
|
Loading…
Reference in New Issue