Open Quuxplusone opened 6 years ago
Attached image.png
(10988 bytes, image/png): error in compiled executable
Copy-pasting the error message from the cmd prompt would be more helpful than a
screenshot. In any case, this CHECK inside INIT_MEMCPY is failing:
#define INIT_MEMCPY \
do { \
if (PLATFORM_HAS_DIFFERENT_MEMCPY_AND_MEMMOVE) { \
COMMON_INTERCEPT_FUNCTION(memcpy); \
} else { \
ASSIGN_REAL(memcpy, memmove); \
} \
CHECK(REAL(memcpy)); \
} while (false)
After this code block, somehow __interception::real_memcpy is still null. On
win64, we go down the ASSIGN_REAL code path, which probably expands to
`__interception::real_memcpy = __interception::real_memmove`. This means we
somehow failed to find or intercept memmove. You can re-run with
ASAN_OPTIONS=verbosity=2 to find out more about that.
I have no time to investigate this right now, but chances are that this is some
environmental bug specific to your exact version of Windows.
I did a little research the problem is fixed by enabling the option "Use MFC in
a Static Library". Can you please find out why?
About my environment:
Windows 10 x64, build 17134 (April update)
Visual Studio 2017 (15.7.1)
I don't know why MFC would affect it, but if you are linking the *CRT*
statically, that makes it much easier to intercept memmove, which would fix the
issue that you're seeing.
I don't have time to investigate, unfortunately.
image.png
(10988 bytes, image/png)