您的位置:首页 > 其它

vs的debug和release版本的区别

2017-08-16 11:33 225 查看

Debug版本通常称为调试版本,通过编译选项的配合,编译的结果通常包含调试信息,可以设置断点、单步调试、使用TRACE/ASSERT等调试输出语句并且编译器不会对代码进行任何优化,可以使开发人员提供强大的应用程序调试能力。

Release版本通常称为发布版本,是为了用户的使用,一般发布版本上不允许进行调试,所以Release版本通常不包含调试信息,同时,它往往进行了各种优化,以期达到代码量最小和效率最高的目的。

Debug版本程序通常比Release版本程序要慢,尤其是在处理视频方面Release版本要比Debug版本快的多,在Release模式对程序进行调试时候经常会遇到变量虽然已经初始化,但是在查看其值的时候却发现是一个随机数而并不是已经初始化的值,有时候在对变量进行监视的时候,会出现找不到变量的情况,原因如下:

Debug根Release在初始化变量时所做的操作是不同的,Debug是将每个字节位都赋成0xcc,而Release的赋值近似于随机。如果程序中的某个变量没被初始化就被引用,就很有可能出现异常:用作控制变量将导致流程导向不一致;用作数组下标会使程序崩溃;更加可能是造成其他变量的不准确而引起其他的错误。所以在变量声明后马上对其初始化一个默认的值是最简单有效的办法。代码存在错误在debug方式下可能会被忽略而不被察觉到。Debug方式下数组越界再有的情况下也不会出错,但是在Release版本中就会暴露出来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: