本发明涉及数据分析,特别涉及一种程序定位方法、装置、电子设备、存储介质。
背景技术:
1、随着互联网技术的发展,代码类型越来越多,开发人员可以选择高效的代码类型进行程序开发。而程序的性能对用户体验有着至关重要的影响,在相关技术中,通常会采用一些性能分析工具抓取汇编代码的性能数据,开发人员根据汇编代码确定程序开发时编写的初始代码,以对初始代码进行后续的性能分析。但是初始代码到汇编代码之间很可能经过了多次语言类型的转换,相关技术要求开发人员能够读懂多种代码类型,人工关联的难度较大,程序定位效率较低。
技术实现思路
1、本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种程序定位方法、装置、电子设备、存储介质,能够根据任一项代码的目标语句自动定位多项代码的关联语句,提高程序定位的效率。
2、第一方面,本发明实施例提供了一种程序定位方法,包括:
3、基于第一代码集合和第二代码集合建立第一映射关系;
4、基于所述第二代码集合和第三代码集合建立第二映射关系;
5、在所述第一代码集合、所述第二代码集合和所述第三代码集合中任选其中一项的目标语句,基于所述第一映射关系和所述第二映射关系定位出所述目标语句在另外两项中的关联语句,其中,所述第一代码集合、所述第二代码集合和所述第三代码集合的代码类型不同。
6、可选地,所述基于第一代码集合和第二代码集合建立第一映射关系,包括:
7、获取所述第一代码集合,基于所述第一代码集合进行打包转换得到所述第二代码集合;
8、获取打包转换过程中生成的转换信息,其中,所述转换信息用于指示所述第一代码集合与所述第二代码集合之间的语句映射关系;
9、基于所述转换信息生成所述第一映射关系。
10、可选地,在所述基于所述转换信息生成所述第一映射关系之前,所述方法还包括:
11、删除所述第二代码集合中的虚拟机代码;
12、当所述第二代码集合包括多个相同的泛型代码,合并相同的所述泛型代码。
13、可选地,所述基于所述第二代码集合和第三代码集合建立第二映射关系,包括:
14、基于所述第二代码集合编译得到二进制文件和编译信息,所述二进制文件包括至少一个操作指令,所述编译信息用于指示所述第二代码集合的语句与所述操作指令的映射关系;
15、反汇编所述二进制文件得到所述第三代码集合,其中,所述第三代码集合的语句对应于所述操作指令;
16、基于所述编译信息生成所述第二映射关系。
17、可选地,所述在所述第一代码集合、所述第二代码集合和所述第三代码集合中任选其中一项的目标语句,包括:
18、生成可视化界面,所述可视化界面包括并列的第一显示区域、第二显示区域和第三显示区域,其中,所述第一显示区域显示有所述第三代码集合,所述第二显示区域显示有所述第二代码集合,所述第三显示区域显示有所述第一代码集合;
19、从所述第一显示区域、所述第二显示区域和所述第三显示区域任选其中一个区域的目标语句。
20、可选地,在所述第一代码集合、所述第二代码集合和所述第三代码集合中任选其中一项的目标语句之前,所述方法还包括:
21、获取所述第三代码集合中每句汇编语句所对应的性能数据;
22、在所述第一显示区域显示所述性能数据。
23、可选地,所述第三代码集合、所述第二代码集合和所述第一代码集合根据预设的默认样式在所述可视化界面中显示,在所述基于所述第一映射关系和所述第二映射关系定位出所述目标语句在另外两项中的关联语句之后,所述方法还包括:
24、获取预设的目标样式,其中,所述目标样式与所述默认样式互不相同;
25、根据所述目标样式显示所述目标语句、另外两项中的所述关联语句和目标性能数据,其中,所述目标性能数据为定位出的所述汇编语句所对应的所述性能数据。
26、第二方面,本发明实施例提供了一种程序定位方法,应用于人机交互设备,所述程序定位方法包括:
27、获取用户从显示的第一代码集合、第二代码集合和第三代码集合中任一项选择的目标语句,其中,所述第一代码集合、所述第二代码集合和所述第三代码集合的代码类型不同;
28、基于用户选择的所述目标语句,以预设的目标样式显示与所述目标语句存在关联关系的关联语句,其中,所述关联语句与所述目标语句所归属的代码集合不同。
29、可选地,在所述以预设的目标样式显示与所述目标语句存在关联关系的关联语句之前,所述方法还包括:
30、基于所述第一代码集合和所述第二代码集合建立第一映射关系;
31、基于所述第二代码集合和所述第三代码集合建立第二映射关系;
32、基于所述第一映射关系和所述第二映射关系定位出所述目标语句在另外两项中的关联语句。
33、第三方面,本发明实施例提供了一种程序定位装置,包括:
34、第一映射模块,被配置为基于第一代码集合和第二代码集合建立第一映射关系;
35、第二映射模块,被配置为基于所述第二代码集合和第三代码集合建立第二映射关系;
36、定位模块,被配置为在所述第一代码集合、所述第二代码集合和所述第三代码集合中任选其中一项的目标语句,基于所述第一映射关系和所述第二映射关系定位出所述目标语句在另外两项中的关联语句,其中,所述第一代码集合、所述第二代码集合和所述第三代码集合的代码类型不同。
37、可选地,第一映射模块被进一步配置为:
38、代码转换模块,被配置为获取所述第一代码集合,基于所述第一代码集合进行打包转换得到所述第二代码集合;
39、转换信息获取模块,被配置获取打包转换过程中生成的转换信息,其中,所述转换信息用于指示所述第一代码集合与所述第二代码集合之间的语句映射关系;
40、第一生成模块,被配置为基于所述转换信息生成所述第一映射关系。
41、可选地,第一生成模块被进一步配置为:
42、代码删除模块,被配置为删除所述第二代码集合中的虚拟机代码;
43、代码合并模块,被配置为当所述第二代码集合包括多个相同的泛型代码,合并相同的所述泛型代码。
44、可选地,第二映射模块被进一步配置为还包括:
45、编译模块,被配置为基于所述第二代码集合编译得到二进制文件和编译信息,所述二进制文件包括至少一个操作指令,所述编译信息用于指示所述第二代码集合的语句与所述操作指令的映射关系;
46、反汇编模块,被配置为反汇编所述二进制文件得到所述第三代码集合,其中,所述第三代码集合的语句对应于所述操作指令;
47、第二生成模块,被配置为基于所述编译信息生成所述第二映射关系。
48、可选地,定位模块被进一步配置为:
49、代码显示模块,被配置为生成可视化界面,所述可视化界面包括并列的第一显示区域、第二显示区域和第三显示区域,其中,所述第一显示区域显示有所述第三代码集合,所述第二显示区域显示有所述第二代码集合,所述第三显示区域显示有所述第一代码集合;
50、目标语句获取模块,被配置为从所述第一显示区域、所述第二显示区域和所述第三显示区域任选其中一个区域的目标语句。
51、可选地,程序定位装置还包括:
52、性能数据获取模块,被配置为获取所述第三代码集合中每句汇编语句所对应的性能数据;
53、性能显示模块,被配置为在所述第一显示区域显示所述性能数据。
54、可选地,代码显示模块被进一步配置为:
55、样式获取模块,被配置为获取预设的目标样式,其中,所述目标样式与所述默认样式互不相同;
56、样式显示模块,被配置为根据所述目标样式显示所述目标语句、另外两项中的所述关联语句和目标性能数据,其中,所述目标性能数据为定位出的所述汇编语句所对应的所述性能数据。
57、第四方面,本发明实施例提供了一种电子设备,包括少一个控制处理器和用于与所述至少一个控制处理器通信连接的存储器;所述存储器存储有可被所述至少一个控制处理器执行的指令,所述指令被所述至少一个控制处理器执行,以使所述至少一个控制处理器能够执行如上述第一方面所述的程序定位方法,或者,执行如上述第二方面所述的程序定位方法。
58、第五方面,本发明实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行如上述第一方面所述的程序定位方法,或者,执行如上述第二方面所述的程序定位方法。
59、根据本发明实施例的方法,针对代码类型不同的第一代码集合、第二代码集合和第三代码集合,基于第一代码集合和第二代码集合建立第一映射关系;基于所述第二代码集合和第三代码集合建立第二映射关系,通过第一映射关系和第二映射关系打通第一代码集合、第二代码集合和第三代码集合之间的语句映射关系,当在所述第一代码集合、所述第二代码集合和所述第三代码集合中任选其中一项的目标语句后,能够根据所述第一映射关系和所述第二映射关系定位出所述目标语句在另外两项中的关联语句。如此,实现了多项代码之间的语句自动定位,有效解决了程序定位效率低的问题。