Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1059|回复: 0
打印 上一主题 下一主题

当前不会命中断点 还没有为该文档加载任何符号 .

[复制链接]

1228

主题

1996

帖子

7572

积分

认证用户组

Rank: 5Rank: 5

积分
7572
跳转到指定楼层
楼主
发表于 2019-12-31 10:28:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
相信很多人在网页编程时都遇到过这个问题,就是设置断点时给出提示,之后不能选中。我今天也碰到这个问题了,足足折磨了我一天。设置是debug没错,我也没有找到“C/C++->常规->调试信息格式”这个东东,估计是C++里的设置,我用的是C#。”将”要求源文件与原始版本完全匹配”的勾取消“我也试了还是不行,webconfig里的debug设置也是true。折腾了一天才发现,我要调试的文本所处的文件夹里还有一个webconfig,这里的debug是false。我上网找了一下,才知道原来最外边的webconfig是总的。文件夹内部也可以设webconfig,这个webconfig继承了总webconfig的信息的基础上还拥有子文件夹自己的属性。所以导致我的总webconfig虽然debug是true。但因为文件夹内的程序要参照内部webconfig。所以还是不能正常设置断点进行调试。真是粗心惹的祸。



万恶的调试不到断点。把vs的各种选项翻来复去的勾来勾去。想尽了办法,已用过的办法有:

        一、删除引用项目的debug

        二、配置管理器中把所有项目的“生成”打勾、“配置”全部选成“debug“,切忌release

        三、配置管理器中“活动解决方案配置”、新建一个方案

        四、将引用目录统一设到某个目录,防止没有引用到最新的(源码与dll版本不匹配)

        五、工具、选项、调试、常规中的“要求源文件和原始版本完全匹配”的勾去掉

        五种办法都用过了。还是没有用。

        最后偶然想到,出现这个问题的原因基本上有两个:

        一、要调试的dll不在调试进程的进程空间,调不到

        二、源代码使用的dll与调试的源代码的版本不对,自然调试不到

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


http://johnsmithblog.blogbus.com/logs/15017286.html
VS2005中设置的断点无效:“当前不会命中断点,还没有为该文档加载任何符号”。折腾了一阵,其实问题主要出在没有生成调试信息。解决方法如下:
(1)项目-〉属性-〉配置属性-〉C/C++-〉常规-〉调试信息格式,这里不能为“禁用”。
(2)项目-〉属性-〉配置属性-〉链接器-〉调试-〉生成调试信息,这里设为“是”。

(3)2005默认的MFC程序是使用动态MFC库(Use   MFC   in   a   Shared   DLL)来链接的   
而动态MFC库使用的是Multi-threaded   DLL   (/MD)   
由于XP对于PE文件格式监测更加严格.   
就会导致部分使用多线程DLL的可执行文件在调用的时候出错   
修改项目属性的编译开关   
Project->Property->configuration   Properties->C/C++->Code   Generation->Runtime   Library   
修改成Multi-threaded   (/MT)

希望这篇文章能帮到和我遇到同样问题的人:)

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-4-25 19:17 , Processed in 0.054281 second(s), 19 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表