今天因项目需要,想调试同一解决方案下的某一工程,设置断点后发现该断点不可能被命中,所以专门查了一下这类问题的原因和解决方法,在这里做个备注,以便自己和别人查阅!
首先说我今天遇到的问题,在需要调试的项目中设置玩断点,改断点标记为空心带叹号(即不能命中: 当前不会命中断点。源代码与原始版本不同),查了一下午发现该项目输出类型被设置为“类库”,是其他项目通过动态库的方式进行引用的,在这种情况下,即便引用项目和被引用项目均处于DUBG模式下,且都生成了.pdb文件,所设置的断点也不会被命中,因为项目是直接调用dll中的代码,调试文件中的调试信息无法被加载和分析。
这个问题的解决方法很简单,即:修改启动项为需要调试的项目。
这里还涉及另外一个问题,即启动项是类库输出而不能启动。
这时我的解决方法是把该项目的启动方式设为启用外部启动项,该外部启动项必须是一个引用了被调试项目的程序。
这时我们在启动就能成功了,设置断点试试,也能正常命中,问题完美解决!
明天总结一下断点不能被命中的其他情况!
原文:http://www.cnblogs.com/WhiteDragon/p/4918149.html