c# - 调试混合模式应用程序(c# 和非托管 c++)时出现 "The breakpoint will not currently be hit"错误

标签 c# c++ windows debug-symbols mixed-mode

在 VS2010 中调试混合模式应用程序时,在非托管 c++ dll 源文件(从托管 c# 包装类调用)中包含的一行代码上设置的断点显示臭名昭著的“当前不会命中断点。否将鼠标悬停在相关行的断点上时,已为该文档加载符号”信息消息。断点本身是一个带有黄色信息三角形的红色圆圈,而不是通常的实心红色球体。当然,执行调试器时不会命中断点。我为这个警告找到的大多数答案表明断点没有正确设置,或者没有加载预期的 dll,或者相关的 pdb 文件没有位于正确的位置,等等。这不是问题。应用程序确实加载并正确执行引用的 dll。我已验证正确的 pdb 文件(与其 dll 具有相同的文件日期)与目标 dll 本身位于可执行文件的工作目录中。调试器根本不加载 dll 的符号,并且 dll 不显示在模块列表中。

我在网上找到的所有解决方案都无法解决此问题。该 dll 未显示在“调试->Windows->模块”菜单选择中可用的模块列表中......即使它实际上已加载。包装类中设置的断点可以正常工作。

删除 bin 和 obj 目录,清理和重建解决方案也无济于事。

最佳答案

此问题的解决方案是设置位于应用程序属性页面的“调试”选项卡中的“启用非托管代码调试”标志

关于c# - 调试混合模式应用程序(c# 和非托管 c++)时出现 "The breakpoint will not currently be hit"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12465468/

相关文章:

c# - 获取设备句柄时出错

c# - 中国地区应用洞察

C#:Powerpoint 不退出?

C++ Windows 线程和互斥问题

c# - Dictionary<string, List<IRp>> 问题,覆盖数据

c++ - 如何在C++中逐行读取字符串

c++ - Devc++ - 'IFileOperation' 未声明 (C++)

windows - 实时版本控制软件

windows - 为什么 Windows 上的 llvm-config 不为 clang++.exe 发出正确的参数?

python - 运行和终止一个程序(Windows下的Python)