应用程序处于中断模式。您的应用已进入休息状态,

时间:2017-05-30 19:51:49

标签: c# .net dll autocad

我发现自己遇到的问题与here相同,我在dll中使用Windows窗体(这是用于Autocad插件)而我无法调试我的代码因为我收到“应用程序在中断模式。您的应用程序已进入中断状态,但当前没有执行所选调试引擎支持的代码“。我在this list尝试了所有推荐,但没有一个推荐给我。一件奇怪的事情是我可以在构造函数中断,但使用控制器/配置对象的事件会获得该页面。

为什么会发生这种情况的任何想法?

提前致谢

6 个答案:

答案 0 :(得分:2)

就我而言,我在调用MVC API端点时收到了同样的消息,并且它也引发了堆栈溢出异常。原因是外部dll中的对象属性,它是用后备字段编写的。意外写入属性的set访问器以设置属性而不是引起无限循环的后备字段,因此堆栈溢出异常。请注意setter中缺少的下划线。

private string _Prefix;
public string Prefix
{
   get { return _Prefix; }
   set { Prefix = value; }
}

虽然您的问题可能与我的问题不完全相同,但外部dll中也会发生类似情况。

答案 1 :(得分:1)

我从未使用过Autocad,但我为Solidworks和Creo Parametrics制作了一些插件。这是我断点不工作时通常做的事情:

  1. 确保在项目设置的构建选项卡上

    • DEBUG常量开启
    • 调试信息设置为完整
    • 优化代码关闭
  2. 对有问题的代码添加System.Diagnostics.Trace.WriteLine("something unique");并在没有附加visual studio的情况下运行它以确保您的代码实际被调用。查看sys internals中的DebugView utility

  3. 确保加载了dll的正确副本:
    1. 像往常一样从visual studio运行解决方案
    2. 检查您是否依附于正确的流程。
    3. 在Autocad中执行触发代码的操作。
    4. 单击VS
    5. 中“调试”工具栏中的“全部中断”按钮
    6. 打开调试 - > Windows->模块窗口,确保您的dll存在于列表中,路径正确,并且旁边有dll的pdb文件。
  4. 添加来电 System.Diagnostics.Debugger.Launch();System.Diagnostics.Debugger.Break();代码。
  5. 希望这会有所帮助,如果您需要澄清任何步骤,请与我们联系。

答案 2 :(得分:1)

重新启动visual studio可以解决这个问题。

答案 3 :(得分:0)

我的Visual Studio 2017 15.8.6出现此问题。 也许我的代码设置为“允许不安全代码”,但是它具有相同的错误代码。 解决方案是单击工具>选项>调试>常规>使用托管兼容模式并激活它。 我从this forum找到了解决方案。

enter image description here

答案 4 :(得分:0)

对我来说,解决方案是仅安装Oracle.ManagedDataAccess.Core NuGet软件包。我也安装了Oracle.ManagedDataAccess,我需要卸载它们以修复Break模式错误。

答案 5 :(得分:0)

我也有同样的问题。经过分析,发现一些依赖项目没有正确构建。重建所有对我有用的项目。