我们有一个STA模式下的C++项目,该项目会打开一个C#/ WPF库,该库通过WindowsFormsIntegration托管ESRI ArcEngine MapControl
。这在Visual Studio 2013中很好用。自从我们切换到VS2015 Update 3以来,在wntdll.pdb中命中神秘断点后,调试时(在Debug和Release中)启动ArcEngine部件的过程都非常慢:“ArcEngineTestApp.exe触发了断点。”
在“输出”窗口中没有进一步的解释(请参阅完整的output)。当我点击继续时,该应用程序将继续加载符号,但至少从现在开始,它的速度肯定比Visual Studio 2013中要慢。它需要VS 2015 15s才能达到断点,并且需要2:15m才能完成加载。 VS 2013展示了ArcEngine在15到20秒内的运行情况。进行比较,请参见此屏幕截图(很遗憾,您无法复制时间戳)
当我在消息上打断时,显示“wntdll.pdb未加载”:
从Microsoft服务器加载pdb失败。
为了证明这一点,我们制作了一个demo project(有关详细信息,请参见下文)。
这仅在调试时发生。编译的应用程序可以正常且快速地运行。
我们尝试过但没有成功的事情:
已安装扩展的列表:
VS 2015 Output(从ArcEngine调用开始)。
要运行Demo project,您需要有效的ArcEngine许可证和ArcEngine SDK。由于许可证的原因,我们无法发布ESRI dll。将它们复制到项目文件夹“ArcEngineTestLibs”。
Visual Studio 2015中的调试设置:
最佳答案
当我将“调试/调试器类型”中的C++项目设置从“自动”更改为“仅受管理”时,它的运行速度又与VS 2013一样快。仍然想知道为什么。
关于c++ - 调试时进行“myapp.exe has triggered a breakpoint”-之后在Visual Studio 2015 Update 3中缓慢加载符号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40489106/