最近这两天,我们实验室的CSDN博客上不去了,有且只有博客上不去,尝试了各种解决办法。。。修改DNS,使用代理等,不知道是不得法还是怎样,没用,昨天发现问题是域名解析重定向,然后就删了hosts文件的内容,然后就好了!!!莫名其妙,而且我删除之后,局域网内的大家都能上了,,,,,,欢迎交流这是什么问题。。。
另外分享这两天解决的两个bug,竟然都与cvReleaseImage 使用不当有关。
- 做到是用室外摄像头和Opencv结合的东西,但是程序只能走一段时间,然后就报错。。。。。cxalloc.cpp,奥,原来是内存问题,但是我都释放了啊。。。。。。
2.确定到一个cvCreateImage 行,为啥cvCreate有错误呢?
3.原来之前的释放语句写到某个循环里了,不是总执行,造成了没有释放的情况,更改之后就好了。。。
写代码一定要认真!!!不然调bug浪费的时间都是自己作的妖。。。。
- 另一个程序(MFC&OpenCV),问题如下:
1.程序可以运行,但是运行几次之后再运行就卡住,然后崩掉。
2.注销之后又可以运行。
3.可以单步调通,但是不能裸奔。
4.每次程序崩的地方不同,用的和上边1的方法类似。
思考过程:
1.如果用了多线程,一个线程等待另一个线程的结果有可能会发生,但是臣妾没用啊。。。。
2.定时器,也类似多线程,该程序是在别的程序基础上改的,有定时器。。。。欣喜若狂的删除定时器。。。并没什么卵用。
3.因为程序中涉及到外部文件,所以我还考虑了外部文件的路径,和存在的问题,但是程序明明可以调通,所以应该不是。
4.观测程序运行的时候,内存。。。。。。。果然泄漏了!而且程序的界面崩的时候,内存还蹭蹭的走啊!
解决办法:
果然,注销后能运行,八成是内存出问题!
因为Opencv很容易泄漏,我就找Opencv的朋友们,找啊找啊找朋友。。。果然!有几个Iplimage*没释放,原来的程序有释放,但是我改的时候没注意。。。。。
总结:
1.认真写代码。
2.自己的代码要写好注释。。。我之前的代码没写注释,我也就忘了释放这回事,而且调起来好麻烦。。。
3.在别的程序的基础上改是一件大工程啊。。。不如自己重新弄。
4.遇到类似问题,可以参考我的上面的思考过程。。。估计总有一条适合你。。
end