System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本说明书的实施例涉及计算机,特别的涉及一种断言信息记录和还原方法。
技术介绍
1、断言在计算机语言中指的是一种在代码中设置的检查点,用于验证程序在特定点上的状态或条件是否满足预期。如果断言的条件为真(满足),则程序继续执行;如果断言的条件为假(不满足),则程序通常会抛出一个异常或错误,从而通知开发者或测试者有问题存在。
2、当电能表设备在仿真调试时,若断言为真,可以直接停止在断言处不再继续执行,程序员可以获取断言位置信息并对程序进行调整。在实际的功能和性能测试及现场运行中程序无法暂停,即使断言判断为假,程序仍需继续执行,增加了排查异常或错误的难度。通常采用断言记录机制,其在程序保持正常运行的基础上记录断言信息,断言信息中记录的文件名称通常为非线性的字符组合,对其进行存储时,单条记录通常耗费64字节以上,占用很大的存储空间,因此可能导致同样的存储空间无法记录全部的断言信息,若要存储更多的断言信息只能增加存储空间,然而增加存储空间也同时增加了成本。
技术实现思路
1、本说明书的实施例提供了一种断言信息记录和还原方法,旨在解决上述问题以及其他潜在的问题中的一个或多个。
2、为实现上述目的,提供以下技术方案:
3、根据说明书的第一方面,提供了一种断言信息记录方法,包括:
4、当检测到断言为假时,获取断言信息;所述断言信息包括源代码文件名称和源代码行号;
5、通过信息摘要算法对所述源代码文件名称进行计算,得到信息摘要值,并将所述信息
6、将所述源代码标识和与其对应的所述源代码行号记录在断言信息记录表中。
7、本说明书实施例的一种断言信息记录方法,对源代码文件名称采用线性的摘要记录方法,避免非易失存储资源的浪费,同样的空间内存可存储更多的断言信息,使得有限资源得到了合理利用。
8、在一些实施例中,所述通过信息摘要算法对所述源代码文件名称进行计算,得到信息摘要值,并将所述信息摘要值作为源代码标识,包括:
9、若源代码文件的数量未超过阈值,通过所述信息摘要算法将所述源代码文件名称生成所述信息摘要值,并将所述信息摘要值的前两个字节作为所述源代码标识。
10、在一些实施例中,所述通过信息摘要算法对所述源代码文件名称进行计算,得到信息摘要值,并将所述信息摘要值作为源代码标识,还包括:
11、若所述源代码文件的数量超过阈值,通过所述信息摘要算法将所述源代码文件名称生成所述信息摘要值,将所述信息摘要值的前3或4个字节作为所述源代码标识。
12、在一些实施例中,在所述通过信息摘要算法对所述源代码文件名称进行计算,得到信息摘要值,并将所述信息摘要值作为源代码标识后,若所述源代码标识存在重复,则更换所述信息摘要算法重新计算所述信息摘要值,获得新的所述源代码标识。
13、在一些实施例中,在所述通过信息摘要算法对所述源代码文件名称进行计算,得到信息摘要值,并将所述信息摘要值作为源代码标识后,将全部的所述源代码标识与其对应的所述源代码文件名称记录到源代码标识与源代码文件名称对应表中。
14、在一些实施例中,所述信息摘要算法为16位和校验或16位crc校验或32位crc校验或md5。
15、在一些实施例中,所述断言信息还包括时标信息,并将所述源代码标识、与其对应的所述源代码行号和所述时标信息记录在所述断言信息记录表中。
16、根据说明书的第二方面,提供了一种断言信息还原方法,包括:
17、获取断言信息记录表中的一个源代码标识;所述断言信息记录表通过如上述的断言信息记录方法在记录源代码标识和与其对应的源代码行号后获得;
18、将所述断言信息记录表中的所述源代码标识,和源代码标识与源代码文件名称对应表进行对照,得到与所述源代码标识对应的源代码文件名称;
19、根据得到的所述源代码文件名称和与其对应的所述源代码行号,还原得到断言信息。
20、本说明书实施例的一种断言信息还原方法,可准确的还原通过上述断言信息记录方法记录的断言信息,达到断言信息的无损输出,可有效快速定位到断言为假的位置。
21、在一些实施例中,所述断言信息记录表中的一个源代码标识通过通信协议或非易失存储器读取所述断言信息记录表获得。
22、在一些实施例中,所述断言信息记录表还记录有时标信息;方法还包括:获取该源代码标识所对应的时标信息;
23、所述根据得到的所述源代码文件名称和与其对应的所述源代码行号,还原得到断言信息,还包括:根据得到的所述源代码文件名称、与其对应的所述源代码行号和所述时标信息,还原得到所述断言信息。
本文档来自技高网...【技术保护点】
1.一种断言信息记录方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述通过信息摘要算法对所述源代码文件名称进行计算,得到信息摘要值,并将所述信息摘要值作为源代码标识,包括:
3.根据权利要求2所述的方法,其特征在于,所述通过信息摘要算法对所述源代码文件名称进行计算,得到信息摘要值,并将所述信息摘要值作为源代码标识,还包括:
4.根据权利要求1所述的方法,其特征在于,还包括:在所述通过信息摘要算法对所述源代码文件名称进行计算,得到信息摘要值,并将所述信息摘要值作为源代码标识后,若所述源代码标识存在重复,则更换所述信息摘要算法重新计算所述信息摘要值,获得新的所述源代码标识。
5.根据权利要求1所述的方法,其特征在于,还包括:在所述通过信息摘要算法对所述源代码文件名称进行计算,得到信息摘要值,并将所述信息摘要值作为源代码标识后,将全部的所述源代码标识与其对应的所述源代码文件名称记录到源代码标识与源代码文件名称对应表中。
6.根据权利要求1所述的方法,其特征在于,包括:所述信息摘要算法为16位和校验或16位
7.根据权利要求1所述的方法,其特征在于,包括:所述断言信息还包括时标信息,并将所述源代码标识、与其对应的所述源代码行号和所述时标信息记录在所述断言信息记录表中。
8.一种断言信息还原方法,其特征在于,包括:
9.根据权利要求8所述的方法,其特征在于,包括:所述断言信息记录表中的一个源代码标识通过通信协议或非易失存储器读取所述断言信息记录表获得。
10.根据权利要求8所述的方法,其特征在于,所述断言信息记录表还记录有时标信息;方法还包括:获取该源代码标识所对应的时标信息;
...【技术特征摘要】
1.一种断言信息记录方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述通过信息摘要算法对所述源代码文件名称进行计算,得到信息摘要值,并将所述信息摘要值作为源代码标识,包括:
3.根据权利要求2所述的方法,其特征在于,所述通过信息摘要算法对所述源代码文件名称进行计算,得到信息摘要值,并将所述信息摘要值作为源代码标识,还包括:
4.根据权利要求1所述的方法,其特征在于,还包括:在所述通过信息摘要算法对所述源代码文件名称进行计算,得到信息摘要值,并将所述信息摘要值作为源代码标识后,若所述源代码标识存在重复,则更换所述信息摘要算法重新计算所述信息摘要值,获得新的所述源代码标识。
5.根据权利要求1所述的方法,其特征在于,还包括:在所述通过信息摘要算法对所述源代码文件名称进行计算,得到信息摘要值,并将所述信息摘...
【专利技术属性】
技术研发人员:卜俭青,毛莹,王竹,闫剑锋,林鑫,张之达,
申请(专利权)人:杭州海兴电力科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。