vs2015无法单步调试不能单步执行

2011年 总版技术专家分年内排行榜第三2010年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第五
2011年 总版技术专家分年内排行榜第三2010年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第五
2011年 总版技术专家分年内排行榜第三2010年 总版技术专家分年内排行榜第三
2012年 总版技术专家分年内排行榜第五
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。2015年1月 VC/MFC大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。7112人阅读
C/C++/VS2008(16)
调试程序,解决程序存在的BUG,是程序员必需要掌握的基本技能,如同医生给病人看病一样。
这里,我给大家简要介绍下如何在vs里面进行代码的调试。(Linux下的调试,有兴趣的同学可以百度(为什么是百度呢?只能百度了)GDB)
站在一个开发者角度,一个正常程序的生产必须经历:程序设计--&编码--&编译--&调试--&测试--&上线(发布)--&维护--&客服反馈问题--&调试解决BUG--&程序更新发布--&...
int main()
while(coding != &success&)
coding...;
while(compiling != &success&)
while(debug != &success&)
while(test != &success&)
coding...;
coding...;
从上面观之,调试贯穿于我们程序的整个开发过程中,甚至对于我们初学者,对于有些函数或语句我们不太清楚,不太理解的话,我们也可以边写代码边进行调试。
我们先主要讲解VS下如何调试的。
用我们实验课本上的例子(实验一,第8题,P38)
我们写的代码不仅要让机器高效的运行正常,更主要的是能让人看得懂(其他人看你的代码,能在短时间内知道你的代码在干啥,节省维护成本),所以一份好的代码,可易读性要比较好,如何做到可易读:
1、变量(或函数)名的命名。
一个较好的名字,就能让人明白你这个变量、函数是干嘛用的。如果全篇代码的变量都用a,b,c...,这种代码让人读起来就要“骂娘”的,而且即使是自己,隔了一段时间后,再来看代码,也许也不知道其含义或功能。
2、代码书写的格式。
一条语句,尽量占用一行,每个语句块(用大括号{}括起来的地方)都需要有缩进,大括号尽量都占一行。
3、适当的空行。
对于在同一个函数内,也可以按其功能进行代码的划分,适当的增加其空行。
一份好的代码,可以节省公司的很大的成本(后期维护人员的维护成本),上面只是基本简要的要求,对每个公司都会有自己的编码规范,有兴趣的同学百度 “谷歌代码规范” 进行学习。
有些同学写完代码后,直接按VS的“调试”按钮运行程序,这样也行,但我们最好是先进行编译(点击运行按钮时也是先要编译的),如果有错误的话,我们再修改错误,如果没有错误的话,我们在运行。
如上图,写完代码后,先点击 Build --& Build Solution(我这是英文版的,中文版的应该是 生成--&生成XX)。
如果写代码有错误的话,会在左下角出现 Build failed(中文版应该是:生成失败),同时会在下面的窗口中把错误信息输出(如同),这时我们就要根据错误信息去修改错误(下面会说)。
如果写的代码正确的话,就会在左下角出现 Build Sucess(中文版是:生成成功)。
成功之后,就可以点击运行按钮,如下图:
【思考】:Start Debuging 与 Start Without Debugging 有什么区别?(中文版是 “开始运行” 与 “运行不调试)
另外,我们在调试程序时,都适用 Debug 模式,即如图:
看到很多同学使用 Release模式,在我们的调试阶段,使用这种模式不是非常的好的。
简要说下DeBug与Release的区别:
Release是在程序经过测试,并且确定无误后,发布(程序上线或交付)时使用的模式。在Release模式下,所有的代码都是经过编译器优化处理的,你写的源代码的执行过程,也许就不是程序最后执行的过程(比如一些运算,我们在写代码时,没考虑到效率,但在这种模式下,编译器就会优化)。假如我们在这种模式下调试代码,单步调试时,出现的结果也许就不是我们所设想的了。
而DeBug是没有经过优化的,在这种模式下运行的程序的逻辑,就是和我们的代码是一模一样的。
另外,Release生成的可执行文件是比DeBug生成的可执行文件少好几倍的。(同学们可以去比较下这两类文件的大小)。
修改错误:
上面的代码中,是有错误的,我们在编译的时候,左下角显示的是Build failed(如上图蓝色框),此时我们就要关注输出信息的错误,如上图紫色框:
1&f:\vs2008\project\实验一\实验一\8.cpp(10) : error C2065: 'y1' : undeclared identifier
这条信息,分为两部分:
(1)f:\vs2008\project\实验一\实验一\8.cpp(10)
出错的文件及行数:8.cpp这个文件的第10行。
(2)error C2065: 'y1' : undeclared identifier错误的原因。从这里我们可以看出,y1这个变量是未声明的。
注:错误信息是有编译器报出来的,只供我们参考。我们在找错误时,根据错误的信息,寻找到对应行的上下行,再进行修改。
根据上面的提示,我们双击1&f:\vs2008\project\实验一\实验一\8.cpp(10) : error C2065: 'y1' : undeclared identifier这一行,VS就会自动把我们的光标定位带源码的对应行,如:
找到这行后,我们仔细检查,发现确实没有y1这个变量,也许是我们手误把y写成了y1,此时我们只需要把y1写成y就可以了。
修改完后,在次编译,直到没有错误。
一个程序能正常运行,但它的结果不是我们想象的结果,或者,我们拿到了别人前辈写的代码,我们要知道代码的运行流畅,这时,就需要使用到调试了。
1、设置断点。
同一个程序在进程的上下文(不明白,就忽略)是按照一定的顺序来执行的,如果我要使程序在某个地方停下来,此时断点就派上用场了。
把光标放在要使程序停下来的那行(如上图第7行),再把鼠标移到最左边,点击下就会出现一个红点,这个红点就是断点,当程序执行到这里时,程序就会中止。
取消断点:再点一次红点,断点就会取消。
2、启动程序。
断点设置好后,这时我们就可以启动程序,让程序跑起来
如同,点击如上按钮。(也可以:Build --& Start Debug)
3、单步调试
程序跑起来后,当运行到断点处,就会停止下来,如图:
(1)在工具栏里会出现图标:
从左到右:Continue(继续)、Break ALL(忽略)、Stop(停止调试)、Restart(重新调试)、Show Next Statement、Step Into(逐语句)、Step Over(逐过程)、Step Out(跳出)。
Step Into(逐语句):当有函数时,点击这个按钮,会进入这个函数内。
Step Over(逐过程):按语句单步执行。当有函数时,不会进入函数。
Step Out(跳出):如果有循环,点击该按钮,会执行到循环外面的语句。
(2)如果把鼠标移动到变量上面,会出现该变量当前的值。如:
(3)在下面窗口会出现所有变量名称和对应的值(如上图)
根据我的需要,选择Step Into或Step Over进行单步执行程序,直到解答我们设想的问题。
如上,自此,一个简单的单步调试流程就讲述完了。以后我们遇到复杂程序,想查看运行时的环境,就可以用这种方式。
又ps:Linux环境下的可以百度gdb。
这篇文章,我是现在“有道日记”里编辑好,本是想编辑好后复制过来的,但是发现图片复制不过来,所以,就又把文字复制来,然后上传图片,最后完成。但是发到手机预览时,发现格式有不正确了,哎,换用某个同学的话:心都累了。然后又来修改格式,发现还不是自己想要的结果。作为一个“变态”的处女座,也就内心隐忍着。
============华丽的分割线============
欢迎关注echo
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:196823次
积分:1275
积分:1275
排名:千里之外
原创:36篇
转载:23篇
评论:12条
(1)(2)(6)(1)(4)(3)(1)(4)(1)(1)(1)(1)(4)(3)(1)(1)(4)(1)(4)(1)(1)(2)(6)(5)

我要回帖

更多关于 vs2015不能执行python 的文章

 

随机推荐