"myapp.exe已触发断点"调试时-之后在Visual Studio 2015 Update 3中缓慢加载符号 [英] "myapp.exe has triggered a breakpoint" while debugging - afterwards slow symbol loading in Visual Studio 2015 Update 3

查看:180
本文介绍了"myapp.exe已触发断点"调试时-之后在Visual Studio 2015 Update 3中缓慢加载符号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们有一个STA模式下的C ++项目,该项目打开了一个C#/WPF库,该库通过WindowsFormsIntegration托管ESRI ArcEngine MapControl.这在Visual Studio 2013中很好用.自从我们切换到VS2015 Update 3以来,在wntdll.pdb中命中神秘的断点后,调试时(在Debug和Release中)启动ArcEngine部件的过程都非常慢:"ArcEngineTestApp.exe触发了断点."

输出"窗口中没有进一步的说明(请参见完整的输出).当我单击继续时,该应用程序将继续加载符号,但至少从现在开始,它的速度肯定比Visual Studio 2013中要慢.VS2015 15s达到断点,之后需要2:15m才能完成加载. VS 2013在15至20秒内显示了ArcEngine.进行比较,请参见此屏幕截图(很遗憾,您无法复制时间戳)

当我在消息上遇到中断时,显示"wntdll.pdb未加载":

从Microsoft服务器加载pdb失败.

为证明这一点,我们进行了演示项目(有关详情,请参见下文).

这仅在调试时发生.编译后的应用程序可以正常且快速地运行.

我们尚未成功尝试的事情:

  • 搜索已触发断点"消息,但未发现类似问题.
  • 因性能问题而停用的设置(用于XAML的UI调试工具,诊断工具,IntelliTrace)
    • 在调试/符号"中没有激活符号服务器
    • 没有安装已知会影响性能的VS扩展. (请参阅下面的完整列表)
    • 尝试了不同版本的ArcEngine(10.3.1和10.4)
    • 从MS和ESRI符号服务器中加载符号并在本地缓存它们.
    • 删除所有断点
    • 我完全重新安装了PC.现在仅安装了一个Visual Studio(2015年)
    • 在另一台PC(已安装多个VS)上进行了测试-行为相同

已安装的扩展程序列表:

  • 用于桌面插件的ArcObjects SDK集成
  • ArcObjects SDK集成实用程序
  • 开发人员分析工具
  • 在保存时格式化文档
  • Microsoft.NET核心工具
  • Microsoft ASP.NET和Web工具
  • Microsoft ASP.NET Web框架和工具
  • Microsoft Azure应用服务工具
  • Microsoft Connected Services
  • 用于VS 2015的NuGet软件包管理器
  • Productivity Power Tools 2015(仅激活输出窗口中的时间戳记)
  • 用于Microsoft Visual Studio的TypeScript
  • Visual Studio可扩展性模板

VS 2015 输出(从ArcEngine调用开始).

要运行 Demo项目,您需要有效的ArcEngine许可证和ArcEngine SDK.由于许可证的原因,我们无法发布ESRI dll.将它们复制到项目文件夹"ArcEngineTestLibs".

Visual Studio 2015中的调试设置:

解决方案

当我将调试/调试器类型"中的C ++项目设置从自动"更改为仅受管理"时,它的运行速度又与VS 2013一样快.

We have a C++ project in STA mode which opens an C#/WPF lib that hosts an ESRI ArcEngine MapControl via WindowsFormsIntegration. This worked fine in Visual Studio 2013. Since we switched to VS2015 Update 3 starting the ArcEngine part while debugging (both in Debug and Release) is horribly slow after an mysterious breakpoint is hit in wntdll.pdb: "ArcEngineTestApp.exe has triggered a breakpoint."

There is no further explaination in the Output window (see full output). When I hit continue, the app continues loading symbols, but at least from now on it's definitly slower than in Visual Studio 2013. It takes VS 2015 15s to reach the breakpoint and 2:15m to complete the loading afterwards. VS 2013 shows the ArcEngine in 15-20s. See this screenshot for comparision (unfortunatly one can't copy the timestamp)

When I hit break on the message, "wntdll.pdb not loaded" is shown:

Loading the pdb from the Microsoft server fails.

To demonstrate this we made a demo project (see below for details).

This only occurs while debugging. The compiled app works fine and fast.

What we have tried yet without success:

  • searched for the "has triggered a breakpoint" message without finding a similar issue.
  • Deactivated settings known for performance problems (UI Debugging Tools for XAML, Diagnostics Tools, IntelliTrace)
    • In Debugging / Symbols is no symbol server activated
    • There are no VS extensions installed that are known to have an impact on performance. (See below for full list)
    • Tried different ArcEngine versions (10.3.1 and 10.4)
    • Load the symbols from both MS and ESRI symbol server and cache them locally.
    • Delete all breakpoints
    • I completly reinstalled my PC. Now only one Visual Studio is installed (2015)
    • Tested on another PC (several VS installed) - same behavior

List of installed extensions:

  • ArcObjects SDK Integration for Desktop Addins
  • ArcObjects SDK Integration Utilities
  • Developer Analytics Tools
  • Format document on Save
  • Microsoft.NET Core Tools
  • Microsoft ASP.NET and Web Tools
  • Microsoft ASP.NET Web Frameworks and Tools
  • Microsoft Azure App Service Tools
  • Microsoft Connected Services
  • NuGet Package Manager for VS 2015
  • Productivity Power Tools 2015 (only timestamps in output window is activated)
  • TypeScript for Microsoft Visual Studio
  • Visual Studio Extensibillity Templates

VS 2015 Output (beginning with the start of the ArcEngine call).

To run the Demo project, you need a valid ArcEngine license and the ArcEngine SDK. Due to license reasons we can't publish the ESRI dlls. Copy them into the project folder "ArcEngineTestLibs".

Debugging settings in Visual Studio 2015:

解决方案

When I change the C++ project settings in Debugging / Debugger Type from "Auto" to "Managed Only", it's fast again as in VS 2013. Still wondering why.

这篇关于"myapp.exe已触发断点"调试时-之后在Visual Studio 2015 Update 3中缓慢加载符号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆