本发明涉及计算机,尤其涉及一种程序异常检测方法、装置、设备及存储介质。
背景技术:
1、随着计算机技术的发展及其与其他电子终端技术的融合,应用程序在生活设备或自动化工业中起到了必不可少的作用,例如软件测试、plc文本编程应用等。但随着程序规模越来越大,功能越来越复杂,数量越来越多,程序漏洞数量也越来越多,因此程序异常检测是重要的一个环节。
2、传统程序的文本编程语言是在编译期间自动检查用户程序的错误,在发现错误的时候终止编译,而对于要求程序运行时进行异常检查的情况一般需要用户手动编写对应的异常检查语句,因此传统方法在程序运行期难以实现程序错误的自动检查,导致检测效率较低。
3、上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
技术实现思路
1、本发明的主要目的在于提供了一种程序异常检测方法、装置、设备及存储介质,旨在解决传统文本编程在程序运行期难以实现程序错误的自动检查,导致检测效率较低的技术问题。
2、为实现上述目的,本发明提供了一种程序异常检测方法,所述程序异常检测方法应用于下位机,所述程序异常检测方法包括:
3、根据异常判断语句判断目标执行程序运行过程中的待检测语句是否存在异常,所述异常判断语句为目标程序在编译过程中预先写入的语句;
4、在所述待检测语句存在异常时,确定所述待检测语句的异常信息,并根据所述异常信息对所述目标程序进行异常报错。
5、可选地,所述在所述待检测语句存在异常时,确定所述待检测语句的异常信息,并根据所述异常信息对所述目标程序进行异常报错的步骤,包括:
6、在所述待检测语句存在异常时,根据异常报错函数确定所述待检测语句的错误码和/或程序行号;
7、根据所述错误码和/或所述程序行号对所述目标程序进行异常报错。
8、可选地,所述根据异常判断语句判断目标执行程序运行过程中的待检测语句是否存在异常,所述异常判断语句为目标程序在编译过程中预先写入的语句的步骤之后,还包括:
9、在所述待检测语句存在异常时,通过异常修改语句对所述待检测语句进行异常修改,以得到修改语句,所述异常修改语句为所述目标程序在编译过程中预先写入的语句。
10、此外,为实现上述目的,本发明还提出一种程序异常检测方法,所述程序异常检测方法应用于上位机,所述程序异常检测方法包括:
11、确定目标程序中的待检测语句;
12、确定所述待检测语句对应的异常判断语句,并将所述异常判断语句插入所述目标程序;
13、编译插入异常判断语句的所述目标程序,以得到所述目标执行程序。
14、可选地,所述确定目标程序中的待检测语句的步骤,包括:
15、解析所述目标程序,以得到所述目标程序的语法树;
16、判断所述语法树中的语句是否满足异常检测条件;
17、将满足所述异常检测条件的语句确定为所述待检测语句。
18、可选地,所述确定所述待检测语句对应的异常判断语句,并将所述异常判断语句插入所述目标程序的步骤,包括:
19、确定所述待检测语句的语句类型;
20、根据所述语句类型确定所述待检测语句的异常检查操作;
21、根据所述异常检查操作确定所述待检测语句对应的异常判断语句。
22、生成所述异常判断语句对应的llvm ir指令,并将所述llvm ir指令插入所述目标程序。
23、可选地,7、所述确定所述待检测语句对应的异常判断语句,并将所述异常判断语句插入所述目标程序的步骤之后,还包括:
24、确定所述待检测语句对应的异常修改语句,并将所述异常修改语句插入所述目标程序;
25、其中,所述编译插入异常判断语句的所述目标程序,以得到所述目标执行程序的步骤包括:
26、编译插入异常判断语句以及异常修改语句的所述目标程序,以得到所述目标执行程序。
27、此外,为实现上述目的,本发明还提出一种程序异常检测装置,所述装置包括:
28、异常判断模块,用于根据异常判断语句判断目标执行程序运行过程中的待检测语句是否存在异常,所述预设异常判断语句为目标程序在编译过程中预先写入的语句;
29、异常报错模块,在所述待检测语句存在异常时,确定所述待检测语句的异常信息,并根据所述异常信息对所述目标程序进行异常报错;或,
30、所述程序异常检测装置包括:
31、确定模块,用于确定目标程序中的待检测语句;
32、插入模块,用于确定所述待检测语句对应的异常判断语句,并将所述异常判断语句插入所述目标程序;
33、编译模块,用于编译插入异常判断语句的所述目标程序,以得到所述目标执行程序。
34、此外,为实现上述目的,本发明还提出一种程序异常检测设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序异常检测程序,所述程序异常检测程序执行实现如上文所述的程序异常检测方法的步骤。
35、此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有程序异常检测程序,所述程序异常检测程序被处理器执行时实现如上文所述的程序异常检测方法的步骤。
36、本发明根据异常判断语句判断目标执行程序运行过程中的待检测语句是否存在异常,所述异常判断语句为目标程序在编译过程中预先写入的语句;然后在所述待检测语句存在异常时,确定所述待检测语句的异常信息;最后根据所述异常信息对所述目标程序进行异常报错。由于本发明在目标程序在编译过程中预先写入异常判断语句,在目标程序运行时,根据异常判断语句判断和确定目标执行程序运行过程中的异常信息;实现了在程序运行期根据异常信息对程序错误进行自动检查和自动报错,避免了传统的程序运行时进行异常检查一般需要用户手动编写的情况,提高了程序异常检测的效率。
1.一种程序异常检测方法,其特征在于,所述程序异常检测方法应用于下位机,所述程序异常检测方法包括:
2.如权利要求1所述的程序异常检测方法,其特征在于,所述在所述待检测语句存在异常时,确定所述待检测语句的异常信息,并根据所述异常信息对所述目标程序进行异常报错的步骤,包括:
3.如权利要求1或2任一项所述的程序异常检测方法,其特征在于,所述根据异常判断语句判断目标执行程序运行过程中的待检测语句是否存在异常,所述异常判断语句为目标程序在编译过程中预先写入的语句的步骤之后,还包括:
4.一种程序异常检测方法,其特征在于,所述程序异常检测方法应用于上位机,所述程序异常检测方法包括:
5.如权利要求4所述的程序异常检测方法,其特征在于,所述确定目标程序中的待检测语句的步骤,包括:
6.如权利要求4所述的程序异常检测方法,其特征在于,所述确定所述待检测语句对应的异常判断语句,并将所述异常判断语句插入所述目标程序的步骤,包括:
7.如权利要求4所述的程序异常检测方法,其特征在于,所述确定所述待检测语句对应的异常判断语句,并将所述异常判断语句插入所述目标程序的步骤之后,还包括:
8.一种程序异常检测装置,其特征在于,所述程序异常检测装置包括:
9.一种程序异常检测设备,其特征在于,所述程序异常检测设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的程序异常检测程序,所述程序异常检测程序执行实现如权利要求1-3或4-7中任一项所述的程序异常检测方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有程序异常检测程序,所述程序异常检测程序被处理器执行时实现如权利要求1-3或4-7任一项所述的程序异常检测方法的步骤。