在一起调试托管与非托管代码

4

我的主要创业项目是用c++编写的,该解决方案还涉及托管的c#代码。

当我进行调试时,我只能在非托管的部分上设置断点(在托管的断点上,它显示为:“当前无法命中断点。无效的文件行")

我检查了引用并发现有dll和pdb文件存在。

可能是什么问题呢?

4个回答

7

正确。我将调试设置为混合模式(之前设置为自动)。 - Eyal

2
如果你和我一样,正在尝试从本机C++项目(即你已经在单个文件上设置/CLR)调试C++/CLI,并且它从未触发断点,也无法步进。那么,朋友们,在VS2015中转到
工具->选项->调试->常规
并勾选这个小框:
启用.NET Framework源代码步进
我相信你还需要像上面的答案一样将其设置为混合模式调试,但仅此是不够的。勾选了这个框后,我可以从非托管的C++进入托管代码..."幕后有大量的技术在运作"

0

你必须启用混合模式调试。我一时想不起来它在哪里了。


正确。我将调试设置为混合模式(之前设置为自动)。 - Eyal

0

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

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

关于如何设置此项的说明请参见这里


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接