【问题标题】:Unable to set breakpoints in C DLL used by C++/CLI called from C#无法在从 C# 调用的 C++/CLI 使用的 C DLL 中设置断点
【发布时间】:2010-10-20 10:15:07
【问题描述】:

我有一个由 C++/CLI 对象调用的本机 C DLL,该对象是 C# 中 WPF 程序的 ViewModel。我想在 C DLL 中设置断点。当我尝试设置它们时,它们是灰色的,并且帮助气球说 当前不会命中断点。没有为此文档加载任何符号。

为了让程序正常运行,我必须添加一个自定义构建步骤,它将 DLL、PDB、ILK 和 LIB 文件复制到 C# 主程序的中间目录。我怀疑这与问题有关。

当我查看加载的模块列表(调试 - Windows - 模块)时,在我知道 DLL 已加载并执行其中的一些函数之后,我看不到 DLL。我看到了 C# 主程序和调用 C DLL 的 C++/CLI 模块。

所有这些项目都在同一个解决方案中 - 我是否需要运行解决方案的单独实例才能调试 DLL?理想情况下,我希望能够调试本机 DLL 以及调用 GUI 代码。

谢谢

【问题讨论】:

    标签: visual-studio-2008 c++-cli debugging


    【解决方案1】:

    由于您的入口点位于托管代码中,因此您需要设置以下选项: 在Visual Studio->入口项目->属性->调试-> 启用非托管代码调试

    【讨论】:

    • 谢谢。我没有意识到我应该在主 GUI 项目上寻找调试属性,尽管现在这很有意义。
    【解决方案2】:

    现在,12 年后@Scott Weinstein 他的回答仍然有效。 至少在 Visual Studio 2019 中仅重命名了一些东西。

    为了帮助您,比我自己更快,这里是您正在寻找的设置:

    Visual Studio 2019-> Solution Explorer -> your start-up project -> properties -> Debug -> 检查Enable native code debugging

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-16
      • 1970-01-01
      • 2021-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多