假设我们有一个名为A (A.exe)的WPF/C#项目。它使用的是用C++/CLI构建的DLL,即项目B (B.Dll)和项目B依赖于项目D,该项目也是用本机C/C++( D.Dll)构建的DLL。
简单地说,A.exe ->使用B.Dll ->使用D.Dll
这里是我的本机环境是- Windows 10,Visual 2017,Visual /C++ 141 .NET 4.6.1/4.7.1。
请注意,C++/CLI (CLR)项目是本机C/C++函数的包装器,这意味着它被用作本机C/C++和WPF/C#之间的中介,以及在一个Visual解决方案下生成的所有项目,因此将相应的项目添加到其他项目中。
上面提到的启动程序是A.exe,这是WPF/C#项目。
问题是,在VisualStudio2017.中运行项目时,我无法调试C/C++。
以下是我已经尝试过的东西:
Debugger Type设置为Mixed (在“项目属性->调试”下)。Use Managed Compatibility Mode(在Visual >Options->调试下)。Enable native code debugging选项(properties>Debug->Debugger engines)。至少在C++代码上标记的单个断点上,我无法中断执行。请帮助解决这个问题。
谢谢。
发布于 2018-03-02 04:22:33
每个项目的目标输出文件名应该不同,否则首先加载模块的符号将对调试器可见。在我的例子中,A、和D有类似的目标文件名(不包含项目名称)。由于A是目标可执行文件,它的pdb覆盖了项目D的pdb。然而,配置我在问题中提到的内容是明智的。
https://stackoverflow.com/questions/49049848
复制相似问题