【问题标题】:Debug Managed and Unmanaged code together同时调试托管和非托管代码
【发布时间】:2011-09-04 06:34:11
【问题描述】:

我的主要启动项目是 C++。该解决方案还涉及托管 c# 代码。 当我调试时 - 我只在非托管部分有断点(在托管断点上它指出:“断点当前不会被命中。无效的文件行”

我检查了引用,发现那里有 dll 和 pdb。

会是什么?

【问题讨论】:

    标签: c# c++ debugging unmanaged managed


    【解决方案1】:

    如何设置混合模式调试 http://msdn.microsoft.com/en-us/library/kbaht4dh(v=vs.100).aspx

    不要错过底部的链接。

    【讨论】:

    • 正确。我将调试设置为混合(之前设置为自动)。
    【解决方案2】:

    如果您像我一样尝试从本机 C++ 项目调试 C++/CLI(即您已在单个文件上设置 /CLR),并且它永远不会遇到断点并且无法进入。那么我的朋友们,在 VS2015 中去

    工具->选项->调试->常规

    然后在下面的小方框打勾:

    启用 .NET Framework 源代码步进

    我相信您还需要将其设置为混合模式调试,就像上面的答案一样,但这对我来说还不够。勾选该框后,我可以从非托管 C++“进入”托管代码......这里有大量的技术在后台运行......

    【讨论】:

      【解决方案3】:

      您必须启用混合模式调试。我不记得那是在哪里,顺便说一句。

      【讨论】:

      • 正确。我将调试设置为混合(之前设置为自动)。
      【解决方案4】:

      我在混合模式调试方面遇到了很多问题。确实,有些程序变得不稳定(Excel 互操作主要是为了我),你不能再编辑和继续了。

      同时调试托管和非托管模式的一个好方法是设置一个新的虚拟项目,它将非托管调试器附加到您的应用程序。您可以使用旧项目调试托管代码,将其分离并在要调试本机代码时附加本机调试器。这样,您还可以对这两个代码进行编辑和继续。

      有关设置的说明是there

      【讨论】:

        猜你喜欢
        • 2011-01-31
        • 1970-01-01
        • 2013-08-24
        • 1970-01-01
        • 2015-02-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多