首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用WPF/C#可执行文件调试DLL (带有本机C/C++的bulit)源代码?

如何使用WPF/C#可执行文件调试DLL (带有本机C/C++的bulit)源代码?
EN

Stack Overflow用户
提问于 2018-03-01 12:34:41
回答 1查看 565关注 0票数 1

假设我们有一个名为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++。

以下是我已经尝试过的东西:

  • 将工作目录设置为在所有项目中构建路径(所有all、PDBs和exe )。
  • 在2017中设置符号路径。
  • 将项目中的Debugger Type设置为Mixed (在“项目属性->调试”下)。
  • 设置(选中)Use Managed Compatibility Mode(在Visual >Options->调试下)。
  • 在WPF项目中设置(选中) Enable native code debugging选项(properties>Debug->Debugger engines)。

至少在C++代码上标记的单个断点上,我无法中断执行。请帮助解决这个问题。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-02 04:22:33

每个项目的目标输出文件名应该不同,否则首先加载模块的符号将对调试器可见。在我的例子中,A、D有类似的目标文件名(不包含项目名称)。由于A是目标可执行文件,它的pdb覆盖了项目Dpdb。然而,配置我在问题中提到的内容是明智的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49049848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档