【问题标题】:Visual Studio debugger wait for managed codeVisual Studio 调试器等待托管代码
【发布时间】:2017-02-24 20:59:24
【问题描述】:

我正在为原生\非托管应用程序编写 C# 插件(DLL 库)。问题是当我启动调试器时,应用程序运行并几乎立即退出(可能是因为我的 DLL 没有在应用程序启动时加载,而是稍后加载)。选中“启用本机代码调试”会有所帮助,但会显着降低应用程序的性能,这是不可取的,因为我只想调试我的 C# 代码。有没有办法在不启用该选项的情况下调试 DLL?我正在使用 Visual Studio 2015 社区。​​p>

【问题讨论】:

  • 两个选择,不确定 Community Edition 是否同时支持... 第一个选择,设置一个单元测试项目来测试功能... 第二个选择,编写一个托管测试工具程序,使用您的库并练习功能。您可以从任何一个进行调试。您真正需要调试的只是调用您的库的托管代码中的某些内容。
  • WinDbg 和 sxe 让这一切变得轻而易举,你们中的一些人并不依赖于 VS。
  • 我在类似情况下使用的另一个选项是在库中临时添加行Debugger.Launch()。命中此行时,应用程序将暂停并触发提示,允许您附加调试器。您显然不希望在生产版本中使用它。
  • @pquest 更改我的代码不会有任何区别,因为它根本没有被击中。

标签: c# .net visual-studio debugging visual-studio-2015


【解决方案1】:

我想通了。 :) 在选项->调试->常规中启用“使用托管兼容模式”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-12
    • 2011-01-31
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    相关资源
    最近更新 更多