如果切换到 Visual FoxPro,Microsoft Visual Studio Community 2015 总是会在 Windows 10 中崩溃

Microsoft Visual Studio Community 2015 always crashes in Windows 10 if swithed to Visual FoxPro

如果 Microsoft Visual Studio 2015 社区版 IDE 在 Windows 10 中打开并且 Microsoft Visal Foxpro IDE 在前台,

几秒后 Visual Studio 崩溃

Microsoft Visual Studio 2015 stopped working

留言。

如何解决这个问题?无法使用 Microsoft Visal FoxPro IDE 已打开 Visual Studio。

在那之后显示了很长时间的collection信息,但没有给出更多信息。 重新启动后,它会提供恢复文件的功能。 如果将 FixPro IDE 带到前台,它会再次崩溃,依此类推。

在 Windows 7 中,两种方法都有效。

也发布在 http://forums.asp.net/p/2098546/6062971.aspx

更新

以下是 x86 的输出 windbg.exe 看起来在 VS 方法中调用 System.IO.Path.CheckInvalidPathChars 会导致崩溃。 这与我的语言环境有关吗? 我认为 IDE-s.

访问的文件名和路径名中只使用英文字符

为什么不显示行号? Debugging/Symbols/Use Microsoft Symber 服务器已签入 Visual Studio, 所有模块,除非选择了排除的单选框并且没有模块被排除。

如何在 CheckInvalidPathChars 源代码中查找导致异常的行号?

Microsoft (R) Windows Debugger Version 10.0.10586.567 X86
Copyright (c) Microsoft Corporation. All rights reserved.


Loading Dump File [C:\LocalDumps\devenv.exe.7652.dmp]
User Mini Dump File with Full Memory: Only application data is available

Symbol search path is: srv*
Executable search path is: 
Windows 10 Version 10586 MP (8 procs) Free x86 compatible
Product: WinNt, suite: SingleUserTS
Built by: 10.0.10586.0 (th2_release.151029-1700)
Machine Name:
Debug session time: Sun Jul  3 17:58:41.000 2016 (UTC + 3:00)
System Uptime: 1 days 2:25:20.731
Process Uptime: 0 days 0:07:52.000
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
.................................
Loading unloaded module list
...............
This dump file has an exception of interest stored in it.
The stored exception information can be accessed via .ecxr.
(1de4.1014): CLR exception - code e0434352 (first/second chance not available)
eax=00000000 ebx=00000000 ecx=00000000 edx=00000000 esi=00000003 edi=00000003
eip=7743718c esp=330ee0f8 ebp=330ee288 iopl=0         nv up ei pl nz na po nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000202
ntdll!NtWaitForMultipleObjects+0xc:
7743718c c21400          ret     14h
0:068> !analyze -v
*******************************************************************************
*                                                                             *
*                        Exception Analysis                                   *
*                                                                             *
*******************************************************************************

*** WARNING: Unable to verify checksum for System.ni.dll
*** WARNING: Unable to verify checksum for System.Core.ni.dll
*** WARNING: Unable to verify checksum for PresentationCore.ni.dll
*** WARNING: Unable to verify checksum for WindowsBase.ni.dll
*** WARNING: Unable to verify checksum for Microsoft.VisualStudio.Shell.14.0.ni.dll
*** WARNING: Unable to verify checksum for Microsoft.CodeAnalysis.Features.ni.dll
*** WARNING: Unable to verify checksum for Microsoft.CodeAnalysis.Workspaces.ni.dll
*** WARNING: Unable to verify checksum for Microsoft.Build.ni.dll
*** WARNING: Unable to verify checksum for Microsoft.VisualStudio.JSLS.ni.dll
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for nativrd2.dll - 
*** WARNING: Unable to verify checksum for System.Management.Automation.ni.dll
*** WARNING: Unable to verify checksum for Microsoft.VisualStudio.Web.ni.dll
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for mscordbi.dll - 

DUMP_CLASS: 2

DUMP_QUALIFIER: 400

CONTEXT:  (.ecxr)
eax=330eede8 ebx=00000005 ecx=00000005 edx=00000000 esi=330eeea8 edi=00000001
eip=7712dae8 esp=330eede8 ebp=330eee40 iopl=0         nv up ei pl nz ac pe nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00000216
KERNELBASE!RaiseException+0x48:
7712dae8 8b4c2454        mov     ecx,dword ptr [esp+54h] ss:002b:330eee3c=872f3008
Resetting default scope

FAULTING_IP: 
KERNELBASE!RaiseException+48
7712dae8 8b4c2454        mov     ecx,dword ptr [esp+54h]

EXCEPTION_RECORD:  (.exr -1)
ExceptionAddress: 7712dae8 (KERNELBASE!RaiseException+0x00000048)
   ExceptionCode: e0434352 (CLR exception)
  ExceptionFlags: 00000001
NumberParameters: 5
   Parameter[0]: 80070057
   Parameter[1]: 00000000
   Parameter[2]: 00000000
   Parameter[3]: 00000000
   Parameter[4]: 6cd80000

PROCESS_NAME:  devenv.exe

ERROR_CODE: (NTSTATUS) 0xe0434352 - <Unable to get error code text>

EXCEPTION_CODE: (HRESULT) 0x80070057 (2147942487) - The parameter is incorrect.

EXCEPTION_CODE_STR:  80070057

EXCEPTION_PARAMETER1:  80070057

EXCEPTION_PARAMETER2:  00000000

EXCEPTION_PARAMETER3:  00000000

EXCEPTION_PARAMETER4: 0

WATSON_BKT_PROCSTAMP:  57685d85

WATSON_BKT_PROCVER:  14.0.25420.1

PROCESS_VER_PRODUCT:  Microsoft® Visual Studio® 2015

WATSON_BKT_MODULE:  KERNELBASE.dll

WATSON_BKT_MODSTAMP:  571afb9a

WATSON_BKT_MODOFFSET:  bdae8

WATSON_BKT_MODVER:  10.0.10586.306

MODULE_VER_PRODUCT:  Microsoft® Windows® Operating System

BUILD_VERSION_STRING:  10.0.10586.0 (th2_release.151029-1700)

MODLIST_WITH_TSCHKSUM_HASH:  4fcd781d45a1334d9bcf598acb3135d540e69ef0

MODLIST_SHA1_HASH:  a0fd1d4cab671d86ea9b9d7967795f680101df97

NTGLOBALFLAG:  0

APPLICATION_VERIFIER_FLAGS:  0

PRODUCT_TYPE:  1

SUITE_MASK:  272

DUMP_FLAGS:  8000c07

DUMP_TYPE:  0

APP:  devenv.exe

MISSING_CLR_SYMBOL: 0

MANAGED_EXCEPTION_HRESULT: 80070057

ANALYSIS_SESSION_HOST:  DELL2

ANALYSIS_SESSION_TIME:  07-03-2016 18:16:32.0068

ANALYSIS_VERSION: 10.0.10586.567 x86fre

MANAGED_CODE: 1

MANAGED_ENGINE_MODULE:  clr

MANAGED_ANALYSIS_PROVIDER:  SOS

MANAGED_THREAD_ID: 1014

MANAGED_EXCEPTION_ADDRESS: 36697728

LAST_CONTROL_TRANSFER:  from 6ce8a701 to 7712dae8

THREAD_ATTRIBUTES: 
FAULTING_THREAD:  ffffffff

THREAD_SHA1_HASH_MOD_FUNC:  7b898fe56a64f5be9b4f1219f22e997dac66cbc4

THREAD_SHA1_HASH_MOD_FUNC_OFFSET:  1211f347092e8a4415eb763a6305ba8f87471780

OS_LOCALE:  ETI

PROBLEM_CLASSES: 



CLR_EXCEPTION
    Tid    [0x44]
    Frame  [0x00]




    String [System.ArgumentException]
    Failure Bucketing
    Data Bucketing



FINALIZER
    Tid    [0x1014]
    Frame  [0x0d]: clr!Thread::DoExtraWorkForFinalizer
    Failure Bucketing



NOSOS
    Tid    [0x1014]
    Failure Bucketing


BUGCHECK_STR:  CLR_EXCEPTION_FINALIZER_NOSOS_System.ArgumentException

DEFAULT_BUCKET_ID:  CLR_EXCEPTION_FINALIZER_NOSOS_System.ArgumentException

STACK_TEXT:  
330eefac 66e3c13d mscorlib_ni!System.IO.Path.CheckInvalidPathChars+0xb3cfbd
330eefbc 663ab5c6 mscorlib_ni!System.IO.Path.GetFileName+0x16
330eefd4 65d2112b system_ni!System.IO.FileSystemWatcher.MatchPattern+0xf
330eefe8 65d2118e system_ni!System.IO.FileSystemWatcher.NotifyFileSystemEventArgs+0x16
330ef000 6580f251 system_ni!System.IO.FileSystemWatcher.CompletionStatusChanged+0x275
330ef060 66372134 mscorlib_ni!System.Threading._IOCompletionCallback.PerformIOCompletionCallback+0x70


STACK_COMMAND:  !sos.pe 0x36697728 ; ** Pseudo Context ** ; kb

THREAD_SHA1_HASH_MOD:  9e580844edc1c536a492e0ccea2cdd390265f467

FOLLOWUP_IP: 
mscorlib_ni+e3c13d
66e3c13d cc              int     3

FAULT_INSTR_CODE:  8dcccccc

SYMBOL_STACK_INDEX:  0

SYMBOL_NAME:  mscorlib_ni!System.IO.Path.CheckInvalidPathChars+e3c13d

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: mscorlib_ni

IMAGE_NAME:  mscorlib.ni.dll

DEBUG_FLR_IMAGE_TIMESTAMP:  570c5040

BUCKET_ID:  CLR_EXCEPTION_FINALIZER_NOSOS_System.ArgumentException_mscorlib_ni!System.IO.Path.CheckInvalidPathChars+e3c13d

PRIMARY_PROBLEM_CLASS:  CLR_EXCEPTION_FINALIZER_NOSOS_System.ArgumentException_mscorlib_ni!System.IO.Path.CheckInvalidPathChars+e3c13d

BUCKET_ID_OFFSET:  e3c13d

BUCKET_ID_MODULE_STR:  mscorlib_ni

BUCKET_ID_MODTIMEDATESTAMP:  570c5040

BUCKET_ID_MODCHECKSUM:  1154df8

BUCKET_ID_MODVER_STR:  4.6.1080.0

BUCKET_ID_PREFIX_STR:  CLR_EXCEPTION_FINALIZER_NOSOS_System.ArgumentException_

FAILURE_PROBLEM_CLASS:  CLR_EXCEPTION_FINALIZER_NOSOS_System.ArgumentException

FAILURE_EXCEPTION_CODE:  80070057

FAILURE_IMAGE_NAME:  mscorlib.ni.dll

FAILURE_FUNCTION_NAME:  System.IO.Path.CheckInvalidPathChars

BUCKET_ID_FUNCTION_STR:  System.IO.Path.CheckInvalidPathChars

FAILURE_SYMBOL_NAME:  mscorlib.ni.dll!System.IO.Path.CheckInvalidPathChars

FAILURE_BUCKET_ID:  CLR_EXCEPTION_FINALIZER_NOSOS_System.ArgumentException_80070057_mscorlib.ni.dll!System.IO.Path.CheckInvalidPathChars

WATSON_STAGEONE_URL:  http://watson.microsoft.com/StageOne/devenv.exe/14.0.25420.1/57685d85/KERNELBASE.dll/10.0.10586.306/571afb9a/80070057/000bdae8.htm?Retriage=1

TARGET_TIME:  2016-07-03T14:58:41.000Z

OSBUILD:  10586

OSSERVICEPACK:  0

SERVICEPACK_NUMBER: 0

OS_REVISION: 0

OSPLATFORM_TYPE:  x86

OSNAME:  Windows 10

OSEDITION:  Windows 10 WinNt SingleUserTS

USER_LCID:  0

OSBUILD_TIMESTAMP:  2015-10-30 04:46:21

BUILDDATESTAMP_STR:  151029-1700

BUILDLAB_STR:  th2_release

BUILDOSVER_STR:  10.0.10586.0

ANALYSIS_SESSION_ELAPSED_TIME: 6952

ANALYSIS_SOURCE:  UM

FAILURE_ID_HASH_STRING:  um:clr_exception_finalizer_nosos_system.argumentexception_80070057_mscorlib.ni.dll!system.io.path.checkinvalidpathchars

FAILURE_ID_HASH:  {9ac34ec0-80d5-6afc-db16-24c08255921b}

Followup:     MachineOwner
---------

更新2

之后 sos.pe 的输出:

0:068> !sos.pe 0x36697728
Exception object: 36697728
Exception type:   System.ArgumentException
Message:          Illegal characters in path.
InnerException:   <none>
StackTrace (generated):
    SP       IP       Function
    330EEFAC 66E3C13D mscorlib_ni!System.IO.Path.CheckInvalidPathChars(System.String, Boolean)+0xb3cfbd
    330EEFBC 663AB5C6 mscorlib_ni!System.IO.Path.GetFileName(System.String)+0x16
    330EEFD4 65D2112B System_ni!System.IO.FileSystemWatcher.MatchPattern(System.String)+0xf
    330EEFE8 65D2118E System_ni!System.IO.FileSystemWatcher.NotifyFileSystemEventArgs(Int32, System.String)+0x16
    330EF000 6580F251 System_ni!System.IO.FileSystemWatcher.CompletionStatusChanged(UInt32, UInt32, System.Threading.NativeOverlapped*)+0x275
    330EF060 66372134 mscorlib_ni!System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)+0x70

StackTraceString: <none>
HResult: 80070057

更新3.

Visual Studio 显示具有参数值的堆栈跟踪:

mscorlib.dll!System.IO.Path.CheckInvalidPathChars(string path, bool checkAdditional)    Unknown
mscorlib.dll!System.IO.Path.GetFileName(string path = "andmed\[=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=]")   Unknown
System.dll!System.IO.FileSystemWatcher.MatchPattern(string relativePath)    Unknown
System.dll!System.IO.FileSystemWatcher.NotifyFileSystemEventArgs(int action = 3, string name = "andmed\[=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=][=15=]")  Unknown
System.dll!System.IO.FileSystemWatcher.CompletionStatusChanged(uint errorCode, uint numBytes, System.Threading.NativeOverlapped* overlappedPointer = 0x1e9bc584)    Unknown
mscorlib.dll!System.Threading._IOCompletionCallback.PerformIOCompletionCallback(uint errorCode, uint numBytes, System.Threading.NativeOverlapped* pOVERLAP) Unknown

用 VeraCrypt 替换 TrueCrypt 解决了这个问题。