我有两个DLL,一个用本机C ++编写,另一个用C ++ / CLI编写。前者被注入一个过程,并在稍后的时间点加载后者。在调试时,我注意到本机DLL的断点正常运行而另一个断点没有,即使它的代码正在执行。
断点显示此消息:此断点不会被命中。没有与此行关联的可执行代码。可能的原因包括:预处理程序指令或编译器/链接器优化。
模块窗口告诉我插件的符号已加载。我正在使用它的DEBUG构建。关于为什么会这样,也许是一个修复的任何想法?
答案 0 :(得分:1)
我假设您正在使用Visual Studio。你是否打开了混合模式调试?
(项目属性 - >调试 - >调试器类型)
答案 1 :(得分:1)
您面临的原因是PDB(“PDB代表程序数据库,一种专有文件格式(由Microsoft开发)用于存储有关程序的调试信息)不是最新的。
尝试清理解决方案(包含托管代码DLL)并重新构建它。
提示:如果您指的是DLL,请尝试将最新的pdbs放在旁边。您可以从bin文件夹中获取pdbs。