程序崩溃

2019-03-25 07:33发布

求助求助,求大神帮忙
简要说一下问题:做了一版CPLD程序,初始版本简称A,功能正常,连续测试24小时无问题,算是个稳定的版本;之后在A的基础上添加了个小功能,这个版本简称为B,因为上一版本测试通过,这个B版本就偷懒没进行稳定测试,只是手动读写了几十遍数据发现没问题,就接着用了;用了一天,控制逻辑都跑的稳稳的,然后发现里面包含的控制LED灯的程序有点小毛病,换了个控制条件,算是又改了一版,这个版本简称C。
改版的顺序是A→B→C。
然后悲剧发生了。。。
A/C版本怎么测试都正常,B只正常了一天,当我改完C之后,B就自己崩溃了,逻辑完全乱掉。我不理解的是,C版本是在B版本上改过来的,数据的逻辑控制完全一样,去看RTL图也是一模一样的,控制LED的部分是个单独的.V文件,完全不影响数据控制。
实际上我就是偷懒,新建了个工程,然后把B的.V文件全部复制过来,单独改改LED灯的.V,就成了C版本。。。。
代码实在太多,写的也比较乱,就不贴了,想问问有没有过类似经历的朋友,能给指个方向就成,我现在真的是很一脸懵逼,同事说我现在的表情都能做表情包了 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
小梅哥
1楼-- · 2019-03-25 13:50
< / 不太理解,帮顶,这种问题还是要结合具体内容来分析下。坐等高手解答
辛昕
2楼-- · 2019-03-25 17:00
居然不用 版本控制..........
chenzhufly
3楼-- · 2019-03-25 20:09
 精彩回答 2  元偷偷看……
辛昕
4楼-- · 2019-03-25 22:33
好吧,其实我现在也希望被拯救,不过我没什么心情发帖求救。
这么多年一点进步都没有,以前遇事我还会叫几声,现在连叫都不会叫了。

哥们儿你这事吧,基本没得救。
不过我可以提供几个我多年这么苦逼的时候积攒下的经验:
不过这些也都是死马当活马治的方法。
特点是:粗暴,简单,有效,虽然破坏性很大。

1.你不是AC都正常吗?
那B能不能不要啊?
不管是从A再一次进到B,你加的内容不多吧?
要么是从C回退到B,你加的内容不多吧?
我估计挺多,不然你也不会在这求救,所以说,下次你要不装个svn 或者git我真的帮不了你。当然这次就算了,不要节外生枝,这是我的忠告之1.1.这事还是先解决事儿吧,CVS的事情下次再研究。

2.不就是B出问题吗?简单啊。
你大概还是知道你加了什么功能吧?
管他,把加的功能一点一点注释掉就是屏蔽掉,然后看看在什么位置出问题,这招百试百灵。
至于你是想从C一点点关掉还是一次全关掉新加的功能,再一点点打开,这看你爱好了。

对了,你需要一个文本比较工具,Beyond compare挺不错的,要是你没用过或者根本不知道,那,那我真的只能说你去百度了。

然后好吧,忙去吧,没别的招。

屏蔽新加的代码,这招是我用过最爽最直接的招,虽然花时间,但对这种事,几乎百试百灵。
辛昕
5楼-- · 2019-03-26 00:10
对了,我老感觉beyond compare在文件夹比对的功能比较弱,所以
其实还应该常备 DiffMerge,他就是不能比对二进制文件比较头疼。

对了,如果你不知道文本比对工具拿来干嘛的话,那就是:
看看从A到B你做了什么作孽的事。

很多时候,造成原因的地方常常是你不经意修改的位置,而非你自己印象里添加新功能的代码
——记住一句格言吧:

很多事能靠工具的还是靠工具,靠自己,你要是能想起来,你怎么可能还会出错呢?

对吧。
elvike
6楼-- · 2019-03-26 05:55
我能说其实所有版本都有问题,只是还能触发bug,实验室环境测试24小时就算稳定,那也太容易了。

一周热门 更多>