今天是:
设百科问答网为首页|收藏百科问答网|网站地图
百科问答网 - 帮您解决问题,分享成功经验
首页(百科问答网)  » 电脑/数码/通讯/互联网 » 编程/开发  » 正文内容:
VC6写的MFC程序,随着"文档"的复杂化,反序列化时经常崩溃

一个10年的老程序了,MDI架构,用序列化方式存储。
代码里Serialize(CArchive& ar)有200多处。
经常有反序列化时崩溃的现象,调试发现常常是这样的错误:

ar >> n ;

for(int i = 0 ; i < n ; i++)
{
ar >> something;
}

n读到了一个不正常的超大值,造成下面循环读乱套。
=======================================
请教有何良方解决此弊病?

经常要在序列化里新加点东西,版本兼容倒是能解决,就是上述弊病不知道如何解决。


答案或建议:


很遗憾,据个人的痛苦经历,debug最快的办法就是慢下来,一点点的细节查进去~~~

象你这个问题,如果可以对CArchive 的 << 和 >> 重载,就可以很容易把数据大小和值的信息存入log。出错时就可以对着查,应该可以容易定位到出错的地方。类似于AOP编程,算是调试技巧。
文章来源:http://www.baikewenda.com/h/1101/a37079.html
推荐内容

敬请注意:百科问答网内容来源于网络或民间经验收集,仅供参考。其中有关健康疾病方面的内容请务必咨询专业医生或及时到医院治疗。
关于我们 - 广告服务 - 联系我们
百科问答网 Copyright ©2005 - 2011 www.baikewenda.com,All Rights Reserved
辽ICP备10007180号