Crash when launching Microsoft Excel 2016 under remote MSVS debugger


I am running into a weird problem when trying to launch Excel (64 bit, version 16.0.12527.20242) under MSVS 2017 debugger on a remote machine running Windows 10 (10.0.17763.973): in this case, and in this case only, Excel processes crashes on startup. This is quite mysterious because not only Excel works fine outside of the debugger, but launching Excel normally and attaching to it later from the same MSVS debugger remotely works just fine too. And launching Excel under WinDbg on the same machine works as well. So I have a couple of possible workarounds, but using MSVS debugger from would be more convenient and, also, I would really like to understand what could trigger this crash only in this particular situation but not in the other ones.

As for the details of the crash, it happens due to calling ucrtbase.dll!terminate after throwing an exception from Mso30win32client.dll. The stack of the main thread looks like this when it happens:

    vcruntime140.dll!FindHandler<__FrameHandler3>(EHExceptionRecord * pExcept=0x000000eca96fc8b0, unsigned __int64 * pRN=0x000000eca96fbc60, _CONTEXT * pContext=0x0000000000000000, _xDISPATCHER_CONTEXT * pDC=0x000000eca96fc240, const _s_FuncInfo * pFuncInfo=0x00007ffd7b2b7db0, unsigned char recursive='\0', int CatchDepth=0x00000000, unsigned __int64 * pMarkerRN=0x0000000000000000)
    vcruntime140.dll!__InternalCxxFrameHandler<__FrameHandler3>(EHExceptionRecord * pExcept=0x000000eca96fc8b0, unsigned __int64 * pRN=0x000000eca96fbc60, _CONTEXT * pContext=0x000000eca96fc3c0, _xDISPATCHER_CONTEXT * pDC=0x000000eca96fc240, const _s_FuncInfo * pFuncInfo=0x00007ffd7b2b7db0, int CatchDepth=0x00000000, unsigned __int64 * pMarkerRN=0x0000000000000000, unsigned char recursive='\0')
    vcruntime140.dll!__CxxFrameHandler3(EHExceptionRecord * pExcept=0x000000eca96fc8b0, unsigned __int64 RN, _CONTEXT * pContext=0x000000eca96fc3c0, _xDISPATCHER_CONTEXT * pDC=0x000000eca96fc240)
    vcruntime140.dll!_CxxThrowException(void * pExceptionObject=0x000000eca96fcc70, const _s__ThrowInfo * pThrowInfo)
    ... several more stack frames inside this DLL ...
    ... several more frames inside EXCEL.EXE ...

and the last messages in the debugger output window are

Exception thrown at 0x00007FFDAA9F9159 in EXCEL.EXE: Microsoft C++ exception: OException at memory location 0x000000ECA96FCC70.
Exception thrown at 0x00007FFD81D54C7D (Mso20win32client.dll) in EXCEL.EXE: 0xC0000005: Access violation writing location 0x0000000000000000.

The exact addresses vary, of course, but the address of the OException object always contains the string Failed to find IProtectionPolicyManagerStatics2.

Note that it's not the first exception being thrown, there are a couple of other OExceptions thrown before (but pointing to a different string, Invalid GUID string: and also a few Roaming::RoamingCacheExceptions. But they seem to be handled normally, while this one is not.

Any idea about what could be triggering it and how might it be possible to work around the problem?

asked on Stack Overflow Mar 9, 2020 by VZ.

0 Answers

Nobody has answered this question yet.

User contributions licensed under CC BY-SA 3.0