aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake/compiler/msvc/settings.cmake13
-rw-r--r--src/server/scripts/Commands/cs_debug.cpp4
2 files changed, 15 insertions, 2 deletions
diff --git a/cmake/compiler/msvc/settings.cmake b/cmake/compiler/msvc/settings.cmake
index fc1b8122af5..36930733bb2 100644
--- a/cmake/compiler/msvc/settings.cmake
+++ b/cmake/compiler/msvc/settings.cmake
@@ -159,6 +159,19 @@ target_compile_options(trinity-compile-option-interface
/we4263
/we4264)
+if(ASAN)
+ target_compile_definitions(trinity-compile-option-interface
+ INTERFACE
+ -D_DISABLE_STRING_ANNOTATION
+ -D_DISABLE_VECTOR_ANNOTATION)
+
+ target_compile_options(trinity-compile-option-interface
+ INTERFACE
+ /fsanitize=address)
+
+ message(STATUS "MSVC: Enabled Address Sanitizer ASan")
+endif()
+
# Disable incremental linking in debug builds.
# To prevent linking getting stuck (which might be fixed in a later VS version).
macro(DisableIncrementalLinking variable)
diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp
index a1ea6538dd2..a73c8329993 100644
--- a/src/server/scripts/Commands/cs_debug.cpp
+++ b/src/server/scripts/Commands/cs_debug.cpp
@@ -1634,7 +1634,7 @@ public:
uint8 stack_array[10] = {};
int size = 10;
- handler->PSendSysMessage("Triggered an array out of bounds read at address %p, value %u", stack_array + size, stack_array[size]);
+ handler->PSendSysMessage("Triggered an array out of bounds read at address %p, value %u", static_cast<void*>(stack_array + size), stack_array[size]);
#endif
return true;
}
@@ -1643,7 +1643,7 @@ public:
{
#ifdef ASAN
uint8* leak = new uint8();
- handler->PSendSysMessage("Leaked 1 uint8 object at address %p", leak);
+ handler->PSendSysMessage("Leaked 1 uint8 object at address %p", static_cast<void*>(leak));
#endif
return true;
}