Virtual Stdio 错误调试汇总(长期更新)
2013-11-16 02:03
295 查看
使用VS有3个月了,发现在实际开发过程中经常会遇到一些莫名奇妙的问题。例如:提示莫名奇妙的标点符号错误、打不上断点、头文件互相包含导致的死循环问题等等。
这些都是我在实际的开发过程中遇到过的。特意在此总结,以备以后使用。
1. 打不上断点: 在调试过程中,打上的断点一到程序跑起来就打不上。下面列举了各种原因。
A)导致这个问题一般是由于项目文件过期引起的,一般清理项目,然后重新编译一下就可以解决
B)在调试运行过程中,改动了代码,且要打的断点在改动过的代码影响范围之内。解决方法,重新编译。
C)上面两种方法都解决不了问题的话,就去掉设置中的在调试时匹配和源代码恰当匹配的版本选项,设置如下
tools->options->dubugging->general->require source files to exactly match the original version勾去掉
D)还是不能解决,那就删掉 pdb文件,该文件在编译程序时生成,该文件记录项目的调试信息,并且在生成的exe文件中添加了调试信息。
删掉后重新编译项目。如果还是不行,不好意思,我帮不了你了。如果你找到了解决方法,希望你能在评论中告诉我。共同学习。
2. 头文件包含导致的未知符号错误、其他正确文件也提示错误
这是由于文件包含不合理造成的。在开发过程中,由于文件实在太多,而且对于新手来说,程序调用关系比较混乱。因此很容易就引起了这种低级错误。
并且提示的错误很让人伤脑。解决方法:找到你最新添加的头文件和相关代码,然后注释掉重新编译。按这种方法去查找比较容易查到。
3.莫名其妙的标点符号错误
导致这个的原因大体上是你定义的类型(结构体、类等)不正确。将提示的该数据结构注释掉,当然还有相关代码。然后编译。
4.指针导致的内存被释放了,但引用(指针)却没有置空。特别使用IF判断时,容易造成隐患。这是开发中很容易忽视的问题。在开发中最后不要擅自分配内存
5. Enum 类型定义时,没有指定起始值,直接做普通整型使用时,导致后面定义的其它类型变量在内存实际存储时出问题。一般不会出这个问题。但不代表没有。
并且这种问题很难发现。我有一次开发时就遇到了,还好当时代码不多。在发现在枚举变量后面定义的整型变量,再给该整型变量赋值0后,却不为0.
6. 打不开某库. 打开的库要在debug或release 文件夹中可以找到的
解决方法: 重新编译或复制到 release/debug 的库目录中
如果使用的是attach to process 调试
检查一下select 的条件,一定要有native选项才可以哦
这些都是我在实际的开发过程中遇到过的。特意在此总结,以备以后使用。
1. 打不上断点: 在调试过程中,打上的断点一到程序跑起来就打不上。下面列举了各种原因。
A)导致这个问题一般是由于项目文件过期引起的,一般清理项目,然后重新编译一下就可以解决
B)在调试运行过程中,改动了代码,且要打的断点在改动过的代码影响范围之内。解决方法,重新编译。
C)上面两种方法都解决不了问题的话,就去掉设置中的在调试时匹配和源代码恰当匹配的版本选项,设置如下
tools->options->dubugging->general->require source files to exactly match the original version勾去掉
D)还是不能解决,那就删掉 pdb文件,该文件在编译程序时生成,该文件记录项目的调试信息,并且在生成的exe文件中添加了调试信息。
删掉后重新编译项目。如果还是不行,不好意思,我帮不了你了。如果你找到了解决方法,希望你能在评论中告诉我。共同学习。
2. 头文件包含导致的未知符号错误、其他正确文件也提示错误
这是由于文件包含不合理造成的。在开发过程中,由于文件实在太多,而且对于新手来说,程序调用关系比较混乱。因此很容易就引起了这种低级错误。
并且提示的错误很让人伤脑。解决方法:找到你最新添加的头文件和相关代码,然后注释掉重新编译。按这种方法去查找比较容易查到。
3.莫名其妙的标点符号错误
导致这个的原因大体上是你定义的类型(结构体、类等)不正确。将提示的该数据结构注释掉,当然还有相关代码。然后编译。
4.指针导致的内存被释放了,但引用(指针)却没有置空。特别使用IF判断时,容易造成隐患。这是开发中很容易忽视的问题。在开发中最后不要擅自分配内存
5. Enum 类型定义时,没有指定起始值,直接做普通整型使用时,导致后面定义的其它类型变量在内存实际存储时出问题。一般不会出这个问题。但不代表没有。
并且这种问题很难发现。我有一次开发时就遇到了,还好当时代码不多。在发现在枚举变量后面定义的整型变量,再给该整型变量赋值0后,却不为0.
6. 打不开某库. 打开的库要在debug或release 文件夹中可以找到的
解决方法: 重新编译或复制到 release/debug 的库目录中
如果使用的是attach to process 调试
检查一下select 的条件,一定要有native选项才可以哦
相关文章推荐
- MyEclipse常见错误汇总,中英注释版(长期更新)
- viusal studio 调试错误及解决方法(长期更新记录)
- WinCE6编译错误汇总-遇到即更新
- css常见的快捷开发代码汇总(长期更新)
- 【ios真机调试错误汇总】Could not change executable permissions on the application.
- IOS开发错误问题汇总(更新中)
- 阿里巴巴技术笔试心得《技术之瞳》例题错误答案汇总(持续更新)
- 调试过程出现的错误汇总
- css常见的快捷开发代码汇总(长期更新)
- 正阳-本站汇总(长期更新)
- PHP调试小错误汇总
- 编程错误集锦(长期更新)
- 关于软件的使用中的一些小问题的记录汇总(长期更新)
- iOS真机调试时更新证书错误:No matching provisioning profiles found
- VC6.0及其以上版本编译连接错误和响应解决方案汇总-不断更新中
- 关于ipa包上传到AppStore时错误汇总(持续更新)
- iOS真机调试时更新证书错误:No matching provisioning profiles found
- 平时编程错误汇总(不定时更新)
- VS2008/2005MFC程序调试出现莫名错误:编译器可能需要更改配置(陆续更新)
- android 调试错误及排查(不断更新)