免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6418 | 回复: 9
打印 上一主题 下一主题

在VC下debug调试结果是正确的,为什么直接运行结果就是错误的?哪位高人解释一下 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-30 11:03 |只看该作者 |倒序浏览
rt

论坛徽章:
0
2 [报告]
发表于 2006-03-30 11:27 |只看该作者
原帖由 woyaoxuexi 于 2006-3-30 11:03 发表
rt


你不贴代码等相关的东东,大家怎么知道?
不过从抽像层次上看,有一本书《编程高手箴言》,对这个问题分析得非常好实在,我比较欣赏,虽然我对他整本书中对Linux的态度和无知感到气愤,但是好的东东咋就要学习!

论坛徽章:
0
3 [报告]
发表于 2006-03-30 11:29 |只看该作者
代码太长拉,上千行,实在不方便,你能大体描述一下可能的问题吗?

论坛徽章:
0
4 [报告]
发表于 2006-03-30 11:45 |只看该作者
在VC中debug状态和release状态下,使用的库不同,编译生成的汇编代码也不相同,很多情况下在debug下可以运行的东西,在release下并不能正常运行.

论坛徽章:
0
5 [报告]
发表于 2006-03-30 12:02 |只看该作者
原帖由 woyaoxuexi 于 2006-3-30 11:29 发表
代码太长拉,上千行,实在不方便,你能大体描述一下可能的问题吗?

作者描述这一段及解决办法也太长了,实在不方便,小可水平有限,讲出来,又怕误导别个,所以,才建议你借书一阅……

论坛徽章:
0
6 [报告]
发表于 2006-03-30 12:19 |只看该作者
野指针和缓冲区未初始化直接用,我在这两种情况下发生过debug/release不同的症状

论坛徽章:
0
7 [报告]
发表于 2006-03-30 12:54 |只看该作者
那么如果使用memset(int * p,0,length)进行初始化,可以解决问题吗?所指初始化是这个意思吧?

论坛徽章:
0
8 [报告]
发表于 2006-03-30 14:03 |只看该作者
原帖由 woyaoxuexi 于 2006-3-30 12:54 发表
那么如果使用memset(int * p,0,length)进行初始化,可以解决问题吗?所指初始化是这个意思吧?


初始化就是给变量一个初始值,不一定就是memset

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
9 [报告]
发表于 2006-03-30 14:26 |只看该作者
Debug调试和直接运行进程在内存中的布局也不一样

论坛徽章:
0
10 [报告]
发表于 2006-03-30 17:10 |只看该作者
上千行?在二百五十行,五百行,七百五十行,一千行的代码上加上日志功能,写日志,这是最笨的办法,看看哪个日志没有出来,就是这两个日志间的代码有问题。str.Format(_T("file=%s,line=%u\r\n",__FILE__,__LINE__); 用于获取源代码文件名和行号。应该还是有帮助的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP