VC断点不可用的问题
文章一
今天我笔记本的VC编译器莫名其妙的就进入不了断点了,而台式机确是好的,问题是一进入调试,断点就自动被取消了,郁闷了一下午,无法进入断点的原因很多,都有想重装VC编译器的打算了,晚上回来查查资料,发现原来是我的VC配置出了问题,解决方法:
Project -> Setting -> Link
genreal
selectd“ Generate debug info”
现在把与此问题相关的一些设置和问题的解决方法奉献给大家:
1、
Project -> Setting -> c/c++ table->genreal
“debug info” set to “program database for edit and continue”
2、
Project -> Setting -> Link->genreal
selectd“ Generate debug info”
文章二
//************************************************************************//
1.解决方案配置是 Debug ,但没有在工程属性页中“Alt+F7”->“配置属性”->“C/C++”->“常规”->“调试信息格式”,选择“用于“编辑并继续”的程序数据库(/ZI)”。另外,在“配置属性”->“链接器”->“调试”->“生成调试信息”中,选择“是”。
2.解决方案配置是 release ,直接F5调试就可以,VS会提示你“没有找到调试信息,要继续调试吗?”,选择“是”即可。
3.检查工程所在路径是不是有中文,有VS不支持中文路径的可能
4.删掉.ncb和.opt,rebuild all。
5.看是否有:“warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失”警告,把那个cpp文件用记事本打开,另存为unicode格式,再重新编译。
6.工具->选项->调试->常规,将”要求源文件与原始版本完全匹配”的勾取消就可以了!
//************************************************************************//
文章三
最近一工程中,在调试的时候,有些cpp文件都可以设置断点并且跟进去,但是有一个cpp文件总是不能设置断点,提示“当前不会命中断点。源代码与原始版本不同。” 重新更换过n次文件都不起作用,然后在goole搜索此类类似问题,找到下篇文章,然后我把那个cpp文件用记事本打开,另存为unicode格式,再重新编译,最后问题解决!也可以更改vs2005的设置,选项->常规,将要求源文件与原始版本完全匹配的勾取消就可以了!
清理整个解决方案,重新编译,无效。删除整个目录,从SubVersion服务器上Down下来重新来过,一样无效。上网搜索,未果。郁闷地放手了。
修一个Bug,提交,然后更新了一下,编译,运行,发现我也染上这个症状了——只有那个文件无法插入断点。倒有些安心了,看来不是VC的Bug,而是源代码的问题。把这个文件回滚到更新前的版本,果然就没问题了。更新到下一个版本,问题就出来了。查看改动,没瞧出来什么。忽然发现有一个不常见的警告:“warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失”。呵呵,应该就是它了。
警告有两个,一个是文件的,不带行号,另一个带行号。那一行是一个case语句,最后加了一句中文注释。把注释删掉,问题解决。把代码拷贝到UltraEdit中看十六进制代码,逐个字节滤过去,没发现什么奇怪的。然后开始逐步逼近问题,把注释前后汉字逐个拿掉,直到问题消失,最后剩下来的核心词是“即时消息”,搜索这个词,果然在整个项目里只有一个。在这个词前面增、删一个空格,问题就消失。郁闷的是把同一行代码拷贝到其他文件、位置都不会有这个问题。
恢复所有改动,更新到最新版本,问题又变了:警告只剩下一个,没了行号!用插入空格的方法定位问题,发现错误向前移动了几行。而且这次就算把警告消掉,还是无法添加断点。尝试了好一会儿没有效果,干脆用VC直接把整个文件格式化了一次,断点又可以用了。而且,这次再怎么插入空格都不会有C4819了。对比了一下修改前后的文件,依然没有什么发现。
搜索了一下,其他人也遇到过C4819,有的是因为Unix换行格式,甚至boost库中一个非ASCII作者名都会引发这个错误,但是这里应该是中文双字节字符错位的问题吧。因为警告等级开到了4,所以各种警告有些泛滥,他们又没有及时处理,这个警告就被淹没在警告堆里了……
另也有:
我也遇到过相同的问题,也是断点无法跟进。解决方法是在断点之前加上MessageBox就可以了,原理未知
VC断点不可用的问题的更多相关文章
- IntelliJ下断点不可用 No executable code found
情景说明:ant工程+IntelliJ Idea 采取copy编译后的class文件到WEB-INF/classes目录下,断点一直不可用 如图: 网上查了很多资料都说的不够明确,IntelliJ社区 ...
- VC断点失败的原因之中的一个
VC断点失败的原因之中的一个 flyfish 2014-10-23 情景 再debug状态下仅仅有一个cpp文件.命中不了断点. 提示 能够 同意源码与原始版本号不同 不採用,防止出现未知的隐患 问题 ...
- 问题解决——VC 断点 无效 一个可能情况?
=================================版权声明================================= 版权声明:本文为博主原创文章 未经许可不得转载 请通过右 ...
- 意外发现,VC断点可加在构造函数的左括号上
CTestApp::CTestApp() { // 断点加在这里,然后可单步进入CTestApp的父类CWinApp的构造函数进行调试! ; } 并且在CWinApp的构造函数的左括号上,可进一步进入 ...
- [z]vs中无法加入断点进行调试的解决方案
http://blog.chinaunix.net/uid-15464162-id-3799069.html [ 1] 以前也遇到过同样的问题,但没有问个为什么,也没有探个毕竟.昨天调试一个DLL,添 ...
- VS中无法加入断点进行调试解决方案
原文地址:http://blog.csdn.net/gukesdo/article/details/6535054 [ 1] 以前也遇到过同样的问题,但没有问个为什么,也没有探个毕竟.昨天调试一个DL ...
- boost vc编译
0.下载:http://www.boost.org/ 1.编译b2.exe,bjam.exe. 双击根目录下面的bootstrap.bat文件,生成b2.exe,bjam.exe(或者使用vs的命令行 ...
- VS2005 调试不能设置断点的解决办法
[ 1] 以前也遇到过同样的问题,但没有问个为什么,也没有探个毕竟.昨天调试一个DLL,添加输出信息吧,太麻烦而且不轻易定位, 但设置断点后按“F5”,断点不可用,气泡提示“当前不会命中断点,还没有为 ...
- gdb break 断点设置
http://sourceware.org/gdb/current/onlinedocs/gdb/ 断点设置 gdb断点分类: 以设置断点的命令分类: breakpoint 可以根据行号.函数.条件生 ...
随机推荐
- 试用mysql的infobright引擎
海量数据分析处理,向来比较头疼费劲,特别是项目资金不允许的情况下,都是优先考虑开源软件,2007使用mysql,2009年尝试greenplum(公司最终选用oracle),20 ...
- UESTC_王之盛宴 2015 UESTC Training for Graph Theory<Problem K>
K - 王之盛宴 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit ...
- linux时钟管理
ref https://access.redhat.com/solutions/18627 在el5中 如何查看系统现在使用的clock source是什么? 答: 方式1:需要说明的是不能保证这个两 ...
- 系统中断与SA_RESTART
今天在调试程序时,sem_timedwait居然返回了一个Interrupted system call,错误码为EINTR.系统中断这东西我一向只闻其名,不见其"人",不想今天遇 ...
- Linux基本操作 2-----Linux文件系统基本结构
Linux的文件系统结构 Linux文件系统为一个倒转的单根树状结构 文件系统的根为"/" 文件系统严格区分大小写 路径使用“/”来分割,在windows使 ...
- openssl ans.1编码规则分析及证书密钥编码方式
1 数据编码格式 openssl的数据编码规则是基于ans.1的,ans.1是什么 ? 先上高大上的解释 ASN.1(Abstract Syntax Notation One), 是一种结构化的描述语 ...
- sql server 删除所有表和存储过程
1.删除外键约束 DECLARE c1 cursor for select 'alter table ['+ object_name(parent_obj) + '] drop constraint ...
- 006 列表的三种删除方法 remove,pop,del
先定义一个列表: number=[,'changhao','常浩',5.2] . remove(): number.remove('changhao')---括号内是要删除的单一值 . pop(): ...
- struts 学习之问一
今天在进行struts全局类型和局部类型转换时,发现一个问题,如下: 当输入一个点的坐标时,我使用全局转换提示错误,找不到类,当改变成局部类型转换时,可以成功转换,不知道这个是什么原因,难道全局不可以 ...
- Install cv2.so for Anaconda
sudo apt-get install python-opencv cp /usr/lib/python2.7/dist-packages/cv2.so /opt/anaconda/lib/pyth ...