Open Try opened 1 year ago
Yeah I've had that problem it my GitHub Workflow too. GCC and Clang both compile and run fine with sanitizers so I doubt there is anything wrong at all. I'm not sure about that though, so if you'd like to it would help if you could debug it and see if it's actually a bigger issue. Otherwise I'll just assume it's a problem with sanitizer support on Apple Clang (since this issue can occur if parts of the app are instrumented and others are not).
Hit possibly another sanitizer issue:
// MSVC
error LNK2038: mismatch detected for 'annotate_vector': value '1' doesn't match value '0' in
Apparently MSVC+Jom cannot link project if different sanitize options were in use, by different submodules. MSVC+Ninja somehow works, not sure why.
Suggestion: advice top-level application(OpenGothc) to use global settings instead:
add_compile_options(-fsanitize=address)
add_compile_options(-fsanitize=leak)
add_link_options (-fsanitize=address)
add_link_options (-fsanitize=leak)
It is already possible to disable sanitizer flags in phoenix. You can just set(PHOENIX_DISABLE_SANITIZERS ON)
and define your own sanitizers globally if you'd like.
Tested on mac after switching to global-level sanitizers. Setup in OpenGothic cmake:
# in debug mode, enable sanitizers
set(PHOENIX_DISABLE_SANITIZERS ON CACHE INTERNAL "")
...
if(${CMAKE_BUILD_TYPE} MATCHES "Debug")
add_compile_options(-fsanitize=address)
add_compile_options(-fsanitize=leak)
add_link_options (-fsanitize=address)
add_link_options (-fsanitize=leak)
endif()
Now warning are gone
Run into this issue, when testing latest OpenGothic build on M1. Apart from it, game runs fine, if
detect_container_overflow
is disabled. Failure is quite consistent intrigger_list
parse code, yet I wasn't able to spot any suspicius code in relevant places.Full log is below:
0x0002cdc006a0 is located 96 bytes inside of 128-byte region [0x0002cdc00640,0x0002cdc006c0) allocated by thread T8 here:
Thread T8 created by T0 here:
HINT: if you don't care about these errors you may set ASAN_OPTIONS=detect_container_overflow=0. If you suspect a false positive see also: https://github.com/google/sanitizers/wiki/AddressSanitizerContainerOverflow.