VS2013 MFC 中DLL连接库断点不能命中的解决方案总结

1、结论测试

          1. ”当前不会命中断点,由于尚未为该文档加载任何符号”才是要使断点命中的要点;.net

          2. 方案1是前提,必定要确保DLL是最新的,头文件包含要同步一致;debug

          3. 按第6条的第一步就解决问题了,其它实验后并没有效果。调试

2、方案blog

1. https://blog.csdn.net/zhangbinsijifeng/article/details/46328393进程

(1).要调试的dll不在调试进程的进程空间,调不到,也就是该dll尚未被加载进exe内。即exe尚未使用到dll呢,固然不会加载该dll到exe的进程空间中文档

(2).exe调用的dll,不是dll源代码生成的最新的dll。必定要确保,exe调用的dll是dll源代码最新生成的dll。同步

不理解下面这段话中的“现有项目”和“一直在用的DLL”  的具体指代    配置

 “第一条out了。确定是第二条。终于想起来了。我引用了三四个项目文件,有的项目文件没有引用“工程”上的现有项目,而是直接引用了一个一直在用的dll。把那个引用删除,而后改为引用到现有项目。”引用

2. https://blog.csdn.net/cokewei/article/details/50547557

环境:VS2015解决方案中有2个项目,一个项目是C++写的dll源代码,另外一个是C#调用这个dll测试。

问题:C#调用dll没法在dll源代码中中断,提示“当前不会命中断点,由于尚未为该文档加载任何符号”

解决:

(1).首先设置dll和测试程序输出路径在同一个目录下

(2).其次设置

        a 项目-〉属性-〉配置属性-〉C/C++-〉常规-〉调试信息格式,这里不能为“禁用”。   

        b项目-〉属性-〉配置属性-〉连接器-〉调试-〉生成调试信息,这里设为“是”。

最后很重要的一点:C#测试程序项目属性-〉调试->启用本机代码调试 打勾

但愿对遇到相同问题的人有用。转载请注明出处

3. https://blog.csdn.net/madison_wang/article/details/52174876

把两个工程的配置属性中->调试:调试器类型由自动改成混合

4. https://blog.csdn.net/hnyzyty/article/details/46482077

首先,设置调试工做目录(把图1红框内的路径改成待调试的DLL所在的路径)

以后,切记要把待调试的项目从新生成一次!

5. https://blog.csdn.net/qq_22889875/article/details/79621534

在对C#调用的C++动态库打断点进行调试时,断点变为黄色感叹号,未进入断点,反复查找缘由,从新生成的dll文件已经拷贝到C#相关目录下面,但仍是没法进入断点,后来发现从新生成的动态库的pdb文件没有拷贝到C#相关目录下面,对动态库进行清理,从新生成解决方案,而后将新生成的dll和pdb同时拷贝到C#相关目录下,调试动态库,断点生效,问题解决。

(release文件夹下才有PDB,而debug模式下没有PDB,所以此方案未试验。)

6.https://blog.csdn.net/shakspers/article/details/78978017

相关文章
相关标签/搜索