多少人在写商业程序时使用Release进行编写?DEBUG呢??两者好处? RT---------------本人使用relase! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 调试的时候用Debug发布的时候用Release呵呵,白说了 我调试和发布全部是release的,不然debug调试完了release除问题就麻烦了! 至少我认为拿DEBUG版本发布的公司,是没有专业精神和不负责任的公司。 为什么说debug不能发布?虽然一般不用它发布,但是也不是不可以用debug发布,个人认为。 有些错误在debug中不会发现,在release中就出现了。 回复人: Qiushen(忘魂) ( ) 信誉:95 2005-12-30 16:59:08 得分: 0 调试的时候用Debug发布的时候用Release呵呵,白说了===================== 汗中……楼主不是这个意思吧楼主说得是像梁肇星一样只用Release写,不用Debug吧?果然是牛人……偶,是普通人用Debug调试 请问 Release 下面怎么调试阿,学习 Release设置成Program Database同样可以调试,Debug调试问题不少,比如STL,其他的问题也不少,有时编译器傻了,赋值5,执行完那行居然显示是8,偶晕 Release 很少用Debug 不错,我是说在编写程序时,用release模式进行编写与调试...... 都用 用debug调试编写代码 时尽量考虑release情况 编写的时候是debug的然后在很多关键输出信息的都是if(debug)处理调试没错就直接release了,呵呵有错再改正debug版本有太多冗余信息,对于产品显然是不合适的从低手向高手慢慢前进吧,呵呵最近用gedit在linux下编程觉得挺锻炼人的 一直觉得release下不能调试的,学习。 呵呵release,不然运行出错时,报个debug的错误多丢人 在使用VC开发软件的过程中,正当要享受那种兴奋的时候突然发现:release与debug运行结果不一致,甚至出错,而release又不方便调试,真的是当头一棒啊,可是疼归疼,问题总要解决,下面将讲述一下我的两点经验,看看是不是其中之一:1. 变量。大家都知道,debug跟release在初始化变量时所做的操作是不同的,debug是将每个字节位都赋成0xcc,而release的赋值近似于随机(我想是直接从内存中分配的,没有初始化过,但debug为什么不是0xff或0x00或其他什么的就不得而知了)。这样就明确了,如果你的程序中的某个变量没被初始化就被引用,就很有可能出现异常:用作控制变量将导致流程导向不一致;用作数组下标将会使程序崩溃;更加可能是造成其他变量的不准确而引起其他的错误。所以在声明变量后马上对其初始化一个默认的值是最简单有效的办法,否则项目大了你找都没地方找。代码存在错误在debug方式下可能会忽略而不被察觉到,如debug方式下数组越界也大多不会出错,在release中就暴露出来了,这个找起来就比较难了:( 还是自己多加注意吧2. 自定义消息的消息参数。MFC为我们提供了很好的消息机制,更增加了自定义消息,好处我就不用多说了。这也存在debug跟release的问题吗?答案是肯定的。在自定义消息的函数体声明时,时常会看到这样的写法:afx_msg LRESULT OnMessageOwn(); 当你在多线程或进程间使用了消息传递时就会导致无效句柄之类的错误。这个原因就是消息体的参数没有添加,即应该写成:afx_msg LRESULT OnMessageOwn(WPARAM wparam, LPARAM lparam); (具体原因我也不太清楚,是不是因为调用时按着默认的参数多分配了WPARAM+LPARAM的空间而破坏了应用程序的内存空间?还请高手多指点)避免的方法:1. 注意变量的初始化2. 自定义消息的标准写法3. 使用调试语句TRACE等时使用后最好注释掉4. 尽量使用try - catch(...) 其实直接使用release开发效果最好,必要时可以在release模式下直接调试(将生成调试信息选项打开即可) debug开发release发布,发布之前要提交测试部分测试一般来说所有变量明确赋初始值,不要相信编译器给的初始值,否则你会死的很惨.这样下来debug和release结果应该相同 按常理,debug模式运行正确但release却不一定正确但我曾有过这样的情况:程序在debug和release模式都可以编译通过但是在release模式运行正常,debug却出现异常因为程序里面用到多线程间的消息传递所以,如果你的程序里面如果涉及到多线程间的消息传递,最好定义成标准的消息函数。还有一次我用了attach函数之后没有detach,结果release出错,debug没问题。 公司的项目,我估计做了近十年了吧几百万行代码,都是release下开发调试,感觉不太方便CRT调试堆函数都没法用长期在release下开发,隐藏了很多问题,内存、资源泄漏严重 我们是这样做得,用release,optimizations选择disable(debug),Debug Infos选择Program database for edit and continue,可以方便调试。但内存泄露问题就实在没发有调试信息了。 我真搞不懂,Release能调试吗?!====CSDN 小助手 V2.5 2005年11月05日发布====CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx下载:http://szlawbook.com/csdnv2 release ,我还是不知道怎么样去调试呀。是不是调试汇编码呀。。?哪位谁告诉我呀。 zcd_jimy(丹)说的再加上link选项里的generate debug info就行了 release里面真的可以调试,呵呵看看经常灌水也是有收获的 发布时用Release版本,之前进行内漏检测......... 在relase调试得时候 有时 显示不出 变量得值怎么回事? DShow摄像头,输出PIN确定问题 求助感情问题 在使用 vc + ado 压缩 Access 数据库时,导入文件时出现以下问题 我觉得windows的API文件操作没有C语言的文件操作方便,不知道大家怎么看 连接access时不用谈出对话框??请教 问:我建了一个MDI工程,该如何知道某一特定子窗口已经存在?且再次创建此子窗口时自动将存在的该窗口显示出来??? karlson0211() 领分,谢谢! 请教 关于任务栏 mciSendString如何获取播放状态 想做一个这样的软件,大家进来看看 【大家都来谈谈你们是怎么写VC文档的,使用那些自动提取注释的工具?】
发布的时候用Release呵呵,白说了
虽然一般不用它发布,但是也不是不可以用debug发布,个人认为。
回复人: Qiushen(忘魂) ( ) 信誉:95 2005-12-30 16:59:08 得分: 0
调试的时候用Debug
发布的时候用Release呵呵,白说了=====================
汗中……
楼主不是这个意思吧楼主说得是像梁肇星一样只用Release写,不用Debug吧?
果然是牛人……偶,是普通人用Debug调试
设置成Program Database同样可以调试,Debug调试问题不少,比如STL,其他的问题也不少,有时编译器傻了,赋值5,执行完那行居然显示是8,偶晕
用debug调试
编写代码 时尽量考虑release情况
然后在很多关键输出信息的都是if(debug)处理调试没错就直接release了,呵呵
有错再改正debug版本有太多冗余信息,对于产品显然是不合适的从低手向高手慢慢前进吧,呵呵最近用gedit在linux下编程觉得挺锻炼人的
1. 变量。
大家都知道,debug跟release在初始化变量时所做的操作是不同的,debug是将每个字节位都赋成0xcc,而release的赋值近似于随机(我想是直接从内存中分配的,没有初始化过,但debug为什么不是0xff或0x00或其他什么的就不得而知了)。这样就明确了,如果你的程序中的某个变量没被初始化就被引用,就很有可能出现异常:用作控制变量将导致流程导向不一致;用作数组下标将会使程序崩溃;更加可能是造成其他变量的不准确而引起其他的错误。所以在声明变量后马上对其初始化一个默认的值是最简单有效的办法,否则项目大了你找都没地方找。代码存在错误在debug方式下可能会忽略而不被察觉到,如debug方式下数组越界也大多不会出错,在release中就暴露出来了,这个找起来就比较难了:( 还是自己多加注意吧2. 自定义消息的消息参数。
MFC为我们提供了很好的消息机制,更增加了自定义消息,好处我就不用多说了。这也存在debug跟release的问题吗?答案是肯定的。在自定义消息的函数体声明时,时常会看到这样的写法:afx_msg LRESULT OnMessageOwn(); 当你在多线程或进程间使用了消息传递时就会导致无效句柄之类的错误。这个原因就是消息体的参数没有添加,即应该写成:afx_msg LRESULT OnMessageOwn(WPARAM wparam, LPARAM lparam); (具体原因我也不太清楚,是不是因为调用时按着默认的参数多分配了WPARAM+LPARAM的空间而破坏了应用程序的内存空间?还请高手多指点)
避免的方法:
1. 注意变量的初始化
2. 自定义消息的标准写法
3. 使用调试语句TRACE等时使用后最好注释掉
4. 尽量使用try - catch(...)
release发布,发布之前要提交测试部分测试一般来说所有变量明确赋初始值,不要相信编译器给的初始值,否则你会死的很惨.
这样下来debug和release结果应该相同
但我曾有过这样的情况:
程序在debug和release模式都可以编译通过
但是在release模式运行正常,debug却出现异常
因为程序里面用到多线程间的消息传递
所以,如果你的程序里面如果涉及到多线程间的消息传递,最好定义成标准的消息函数。
还有一次我用了attach函数之后没有detach,结果release出错,debug没问题。
几百万行代码,都是release下开发调试,感觉不太方便
CRT调试堆函数都没法用
长期在release下开发,隐藏了很多问题,内存、资源泄漏严重
CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
下载:http://szlawbook.com/csdnv2
哪位谁告诉我呀。
看看经常灌水也是有收获的