我有一个混合的托管/本机桌面解决方案。开始调试时,需要大约一分钟(!)才能启动,并立即进入调试对象。
更多信息:
1)在主线程上断开'立即'=在此堆栈处中断:
TimerAbstractFactory.php
2)我看到一个我不熟悉的帖子,从<?php
开始,在休息时间位于> kernel32.dll!GetFullPathNameW() Unknown
mscorlib.ni.dll!00007ffaa4f51310() Unknown
[Managed to Native Transition]
mscorlib.dll!System.IO.PathHelper.GetFullPathName() Unknown
mscorlib.dll!System.IO.Path.NormalizePath(string path = "D:\\cwx_tfs\\718_High_risk_branch\\Application\\Bin\\Debug\\CathWorksUI.exe.Config", bool fullCheck, int maxPathLength = 260, bool expandShortPaths = true) Unknown
mscorlib.dll!System.IO.Path.GetFullPathInternal(string path) Unknown
mscorlib.dll!System.AppDomainSetup.NormalizePath(string path, bool useAppBase) Unknown
mscorlib.dll!System.AppDomainSetup.VerifyDir(string dir, bool normalize) Unknown
System.Configuration.dll!System.Configuration.ClientConfigPaths.ClientConfigPaths(string exePath = null, bool includeUserConfig) Unknown
System.Configuration.dll!System.Configuration.ClientConfigPaths.GetPaths(string exePath, bool includeUserConfig = false) Unknown
System.Configuration.dll!System.Configuration.ClientConfigurationHost.GetStreamName(string configPath) Unknown
System.Configuration.dll!System.Configuration.ClientConfigurationHost.IsAppConfigHttp.get() Unknown
System.Configuration.dll!System.Configuration.ClientConfigurationSystem.ClientConfigurationSystem() Unknown
System.Configuration.dll!System.Configuration.ConfigurationManager.EnsureConfigurationSystem() Unknown
System.Configuration.dll!System.Configuration.ConfigurationManager.PrepareConfigSystem() Unknown
System.Configuration.dll!System.Configuration.ConfigurationManager.GetSection(string sectionName = "system.diagnostics") Unknown
System.dll!System.Configuration.PrivilegedConfigurationManager.GetSection(string sectionName) Unknown
System.dll!System.Diagnostics.DiagnosticsConfiguration.Initialize() Unknown
System.dll!System.Diagnostics.DiagnosticsConfiguration.Sources.get() Unknown
System.dll!System.Diagnostics.TraceSource.Initialize() Unknown
System.dll!System.Diagnostics.TraceSource.Switch.get() Unknown
WindowsBase.dll!System.Diagnostics.PresentationTraceSources.CreateTraceSource(string sourceName) Unknown
WindowsBase.dll!System.Diagnostics.PresentationTraceSources.DependencyPropertySource.get() Unknown
WindowsBase.dll!MS.Internal.AvTrace.Initialize() Unknown
WindowsBase.dll!MS.Internal.TraceDependencyProperty.TraceDependencyProperty() Unknown
...
。
3)在生成的进程msvsmon('Visual studio 2015远程调试器')中有大约60秒的高CPU活动。在使用WPA进行检查时,我发现在mscordbi.dll上花费了不成比例的时间!ShimStackWalk。特别是在这个堆栈:
我什么都不做,只是经常进行桌面调试。我也在/ safemode中复制了这个,所以它可能不是扩展问题。调试相同代码的其他计算机上不会发生这种情况,因此它不是一些奇特的代码问题。 VS重新安装后仍然存在。我可能以某种方式使用非默认调试引擎吗?任何其他想法都会非常受欢迎。
编辑:
4)刚刚发现,如果我取消选中“启用本机代码调试”,则60秒延迟消失了。它是混合调试引擎特有的东西。
编辑:
5)刚刚在VS ActivityLog.xml中看到了这个:
ntdll.dll!DbgUiRemoteBreakin()
听起来很相关。我该如何解决?
编辑: 我报告了这个@Connect。如果有人感兴趣,那可能是一个值得关注的好地方。如果您遇到问题,请投票。