Post date: Aug 10, 2009 5:34:32 AM
我写了一个很傻冒的纠错程序,它采用了一种叫做defensive programming的思想来纠错.说穿了就是步步为营,每保存一次数据,就现场原地打开一次,然后和期待值进行比较.相比于原先的纠错程序,它的好处在于错误覆盖率可以提高到接近百分之百,而且出现错误之后可以当时发现,原地检查.坏处就是速度很慢,仿真速度是原来的十分之一,好在全自动,完全不用人手动跟踪.所以我就无事可做了,跑来写blog了..
最常见的defensive programming方法是加assertion.所谓assertion,就是一种强制检查,比如你在访问一个内存地址之前,先检查指向那里的指针是否有效.在win32平台上可以加入<assert.h>,然后就可以用assert(bool)这个函数.如果检查出这里有错,程序就会被中断在这行语句处,同时在终端打印出文件名,行号,和assert的内容.