本申请涉及一种基于动态追踪的编程练习评价方法、系统、设备及介质,属于计算机教育领域。
背景技术:
1、目前,通常采取动态分析和静态分析相结合的综合评价方法,集成运行结果信息和结构相似性信息,判定编程练习的性质和得分。
2、然而,动态分析缺失过程性数据,导致评价结果过于片面。静态分析缺乏执行过程,导致无法准确地分析和预测代码行为,进而容易误报或漏报。
技术实现思路
1、有鉴于此,本申请实施例提供了一种基于动态追踪的编程练习评价方法、系统、电子设备及可读存储介质,旨在提高编程练习评价的准确性。
2、本申请实施例第一方面公开了一种基于动态追踪的编程练习评价方法,所述方法包括:
3、根据编程练习的任务要求确定评价编程练习解答的启发式函数,启发式函数的参数列表对应动态追踪的多个目标;
4、基于启发式函数所需的参数,依据预置的追踪程序模版构建动态追踪用户态信息和内核态信息的程序;
5、创建运行环境;
6、在运行环境中,安装编程练习解答程序和动态追踪程序以及它们的运行依赖;
7、运行编程练习解答程序和动态追踪程序,实时追踪编程练习解答程序运行过程的用户态信息和内核态信息;
8、根据启发式评价函数和动态追踪获取的信息,得到练习者编程练习的评价等级或得分。
9、在一些实施例中,所述目标包括用户态信息追踪目标和内核态信息追踪目标;
10、所述用户态信息追踪目标包括至少之一:第一函数、第一变量、异常和内存;
11、所述内核态信息追踪目标包括至少之一:第二函数和第二变量。
12、在一些实施例中,所述基于启发式函数所需的参数,依据预置的追踪程序模版构建动态追踪用户态信息和内核态信息的程序,包括:
13、根据第一监控程序模板和启发式函数中的用户态信息追踪目标,形成监控程序;
14、根据第二监控程序模板和启发式函数中的内核态信息追踪目标,构建kprobehook追踪代码并转译成bpf字节码,并经过内核机制校验之后,挂载在内核态信息追踪目标上;
15、等待触发执行。
16、在一些实施例中,所述实时追踪编程练习解答程序运行过程的用户态信息和内核态信息,包括:
17、针对所述用户态信息追踪目标,通过调试器编程接口实时追踪所述编程练习解答程序运行过程中的用户态信息并采集;
18、针对所述内核态信息追踪目标,通过基于操作系统内核ebpf虚拟机实时追踪所述编程练习解答程序运行过程中的内核态信息并采集。
19、在一些实施例中,所述针对所述用户态信息追踪目标,通过调试器编程接口实时追踪所述编程练习解答程序运行过程中的用户态信息并采集,包括:
20、当运行所述编程练习解答程序时,所述监控程序利用所述调试器编程接口对所述用户态信息追踪目标进行追踪,采集相应的用户态信息并存储在第一数据结构中。
21、在一些实施例中,所述针对所述内核态信息追踪目标,通过基于操作系统内核ebpf虚拟机实时追踪所述编程练习解答程序运行过程中的内核态信息并采集,包括:
22、当运行所述编程练习解答程序时,内核进程执行到挂载的内核态信息追踪目标时,触发hook,运行bpf程序,其中,所述bpf程序采集相应的内核态信息并存储在第二数据结构中。
23、在一些实施例中,确定评价编程练习解答的启发式函数,包括:
24、响应用户输入操作,定义启发式函数及其参数、参数权重。
25、本申请实施例第二方面公开了一种基于动态追踪的编程练习评价系统,所述系统包括:
26、确定单元,用于根据编程练习的任务要求确定评价编程练习解答的启发式函数,启发式函数的参数列表对应动态追踪的多个目标;
27、构建单元,用于基于启发式函数所需的参数,依据预置的追踪程序模版构建动态追踪用户态信息和内核态信息的程序;
28、创建单元,用于创建运行环境;
29、安装单元,用于在运行环境中,安装编程练习解答程序和动态追踪程序以及它们的运行依赖;
30、动态追踪单元,用于运行编程练习解答程序和动态追踪程序,实时追踪编程练习解答程序运行过程的用户态信息和内核态信息;
31、评价单元,用于根据启发式评价函数和动态追踪获取的信息,得到练习者编程练习的评价等级或得分。
32、本申请实施例第三方面公开了一种电子设备,包括处理器以及用于存储处理器可执行程序的存储器,所述处理器执行存储器存储的程序时,实现本申请实施例公开的任意一种基于动态追踪的编程练习评价方法。
33、本申请实施例第四方面公开了一种可读存储介质,存储有程序,所述程序被处理器执行时,实现本申请实施例公开的任意一种基于动态追踪的编程练习评价方法。
34、与相关技术相比,本申请实施例具有以下有益效果:
35、本申请实施例从用户态和内核态的层面出发,能够实时捕捉编程练习解答程序运行过程中相应的关键数据和函数调用信息,并结合启发式函数综合评价编程练习解答程序,给予编程练习解答程序较为全面的评价,从而提高编程练习评价的准确性。
1.一种基于动态追踪的编程练习评价方法,其特征在于,所述方法包括:
2.根据权利要求1所述方法,其特征在于,所述目标包括用户态信息追踪目标和内核态信息追踪目标;
3.根据权利要求2所述方法,其特征在于,所述基于启发式函数所需的参数,依据预置的追踪程序模版构建动态追踪用户态信息和内核态信息的程序,包括:
4.根据权利要求3所述方法,其特征在于,所述实时追踪编程练习解答程序运行过程的用户态信息和内核态信息,包括:
5.根据权利要求4所述方法,其特征在于,所述针对所述用户态信息追踪目标,通过调试器编程接口实时追踪所述编程练习解答程序运行过程中的用户态信息并采集,包括:
6.根据权利要求4所述方法,其特征在于,所述针对所述内核态信息追踪目标,通过基于操作系统内核ebpf虚拟机实时追踪所述编程练习解答程序运行过程中的内核态信息并采集,包括:
7.根据权利要求1所述方法,其特征在于,确定评价编程练习解答的启发式函数,包括:
8.一种基于动态追踪的编程练习评价系统,其特征在于,所述系统包括:
9.一种电子设备,包括处理器以及用于存储处理器可执行程序的存储器,其特征在于,所述处理器执行存储器存储的程序时,实现权利要求1~7任一项所述方法。
10.一种可读存储介质,存储有程序,其特征在于,所述程序被处理器执行时,实现权利要求1~7任一项所述方法。