您的位置:首页 > 其它

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选项才可以哦
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: