一种应用运行分析方法、计算设备及存储介质技术

技术编号:35954362 阅读:24 留言:0更新日期:2022-12-14 10:48
本发明专利技术涉及操作系统领域,特别涉及一种应用运行分析方法、计算设备及存储介质,方法包括:在第一架构应用中插入第一桩代码;基于第一桩代码运行所述第一架构应用,生成第一结构图;通过模拟器将第二架构应用的可执行文件包括的第二架构指令翻译为第一架构指令;根据第一架构指令,设置第二桩代码;基于第二桩代码,通过模拟器运行第二架构应用,生成第二结构图;根据第一结构图和第二结构图确定运行差异信息。本发明专利技术通过结构图能够确定应用两种运行方式的差异,从而实现对运行过程的差异进行比较,以便根据差异信息确定出现问题的位置。以便根据差异信息确定出现问题的位置。以便根据差异信息确定出现问题的位置。

【技术实现步骤摘要】
一种应用运行分析方法、计算设备及存储介质


[0001]本专利技术涉及操作系统领域,特别涉及一种应用运行分析方法、计算设备及存储介质。

技术介绍

[0002]随着计算机技术的发展,市面上出现了不同种类的处理器,这些处理器可包括多种不同的架构。相应的,根据不同架构处理器支持的不同的指令集,也开发出了不同架构的应用。
[0003]现有技术提供了在包括一种架构处理器的计算设备上运行另一种架构应用的方法,具体的可通过模拟器实现运行。模拟器可具体实现为容器,虚拟机等。但通过模拟器运行另一种架构应用时,由于模拟器本身的问题,会导致同构平台上运行该程序没有出现问题,而在异构平台上出现各种非预期的效果(例如:崩溃、异常退出,逻辑错误等),造成软件无法使用,这些问题既包括了模拟器指令翻译错误,也包括翻译逻辑错误,这些错误通常只在程序运行到某些特定分支才会触发,常用的方法是通过日志加调试器进行定位,但是针对大程序而言,翻译后的指令可能达到百万级,且大多数动态翻译引擎采用的是按照代码块进行翻译和执行的设计方法,因此一旦出现和预期不符的情况,问题和原因都非常难以定位。
[0004]为此,需要一种新的应用运行分析方法。

技术实现思路

[0005]为此,本专利技术提供一种应用运行分析方法,以力图解决或者至少缓解上面存在的问题。
[0006]根据本专利技术的一个方面,提供一种应用运行分析方法,适于在计算设备中执行,计算设备适于运行第一架构应用,方法包括:在第一架构应用中插入第一桩代码;基于第一桩代码运行所述第一架构应用,生成第一结构图;通过模拟器将第二架构应用的可执行文件包括的第二架构指令翻译为第一架构指令;根据第一架构指令,设置第二桩代码;基于第二桩代码,通过模拟器运行第二架构应用,生成第二结构图;根据第一结构图和第二结构图确定运行差异信息。
[0007]可选地,在根据本专利技术的方法中,在第一架构应用中插入第一桩代码包括:根据第一架构应用的可执行文件生成中间格式文件;根据中间格式文件确定第一应用执行分支;在第一应用执行分支设置第一桩代码。
[0008]可选地,在根据本专利技术的方法中,在第一架构应用中插入第一桩代码:根据第一架构应用的可执行文件确定插入点;在插入点处设置跳转指令;根据跳转指令设置第一桩代码。
[0009]可选地,在根据本专利技术的方法中,基于第二桩代码,通过模拟器运行第二架构应用,生成第二结构图包括:根据第二架构应用的可执行文件生成寄存器标识;根据寄存器标
识执行第一架构指令,并根据第二桩代码生成第二结构图。
[0010]可选地,在根据本专利技术的方法中,根据寄存器标识执行第一架构指令,并根据第二桩代码生成第二结构图,包括:根据寄存器标识确定执行第一架构指令时的第二应用执行分支;根据第二应用执行分支执行第二桩代码生成第二结构图。
[0011]可选地,在根据本专利技术的方法中,基于第二桩代码,通过模拟器运行第二架构应用,生成第二结构图包括:根据第二架构应用的可执行文件确定第二架构应用调用的第二函数和调用位置;根据调用位置设置第二桩代码;通过模拟器调用第二函数以运行第二架构应用,并执行第二桩代码生成第二结构图。
[0012]可选地,在根据本专利技术的方法中,通过模拟器调用第二函数以运行第二架构应用包括:根据调用第二函数的第二调用表,生成调用第一函数的第一调用表,第一函数为计算设备提供的本地函数;根据第一调用表调用第一函数,以执行第二架构应用。
[0013]可选地,在根据本专利技术的方法中,根据调用位置设置第二桩代码,包括:在调用位置设置中断处理函数;根据中断处理函数设置第二桩代码。
[0014]可选地,在根据本专利技术的方法中,还包括:根据中断处理函数存储模拟器的模拟器状态,以便在执行第二桩代码后,根据模拟器状态继续运行第二架构应用。
[0015]根据本专利技术的另一个方面,提供了一种计算设备,包括:一个或多个处理器;存储器;以及一个或多个程序,其中,一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序包括用于执行根据本专利技术的应用运行分析方法的指令。
[0016]根据本专利技术的再一个方面,提供了一种存储一个或多个程序的计算机可读存储介质,一个或多个程序包括指令,该指令当由计算设备执行时,使得计算设备执行根据本专利技术的应用运行分析方法。
[0017]本专利技术公开了一种应用运行分析方法,适于在计算设备中执行,计算设备适于运行第一架构应用,方法包括:在第一架构应用中插入第一桩代码;基于第一桩代码运行所述第一架构应用,生成第一结构图;通过模拟器将第二架构应用的可执行文件包括的第二架构指令翻译为第一架构指令;根据第一架构指令,设置第二桩代码;基于第二桩代码,通过模拟器运行第二架构应用,生成第二结构图;根据第一结构图和第二结构图确定运行差异信息。本专利技术通过结构图能够确定应用两种运行方式的差异,从而实现对运行过程的差异进行比较,以便根据差异信息确定出现问题的位置。
附图说明
[0018]为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本专利技术公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
[0019]图1示出了根据本专利技术一个示范性实施例的应用运行分析方法100的流程示意图;图2示出了根据本专利技术一个示范性实施例的计算设备200的结构框图;图3示出了根据本专利技术一个示范性实施例的生成第一结构图的示意图;图4示出了根据本专利技术一个示范性实施例的绘制第二结构图的示意图;
图5示出了根据本专利技术另一个示范性实施例的绘制第二结构图的示意图;图6示出了根据本专利技术一个示范性实施例的确定运行差异信息的示意图。
具体实施方式
[0020]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。相同的附图标记通常指代相同的部件或元素。
[0021]图1示出了根据本专利技术一个示范性实施例的应用运行分析方法100的流程示意图。本专利技术中的一种应用运行分析方法适于在本专利技术适于在计算设备中执行。计算设备适于运行第一架构应用。
[0022]图2示出了根据本专利技术一个示范性实施例的计算设备的结构框图。在基本配置中,计算设备200包括至少一个处理单元220和系统存储器210。根据一个方面,取决于计算设备的配置和类型,系统存储器210包括但不限于易失性存储(例如,随机存取存储器)、非易失性存储(例如,只读存储器)、闪速存储器、或者这样的存储器的任何组合。根据一个方面,系统存储器210包括操作系统211。
[0023]根据一个方面,操作系统2本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用运行分析方法,适于在计算设备中执行,所述计算设备适于运行第一架构应用,所述方法包括:在所述第一架构应用中插入第一桩代码;基于所述第一桩代码运行所述第一架构应用,生成第一结构图;通过模拟器将第二架构应用的可执行文件包括的第二架构指令翻译为第一架构指令;根据所述第一架构指令,设置第二桩代码;基于所述第二桩代码,通过模拟器运行所述第二架构应用,生成第二结构图;根据所述第一结构图和所述第二结构图确定运行差异信息。2.如权利要求1所述的方法,其中,所述在所述第一架构应用中插入第一桩代码包括:根据所述第一架构应用的可执行文件生成中间格式文件;根据所述中间格式文件确定第一应用执行分支;在所述第一应用执行分支设置第一桩代码。3.如权利要求1所述的方法,其中,所述在所述第一架构应用中插入第一桩代码包括:根据所述第一架构应用的可执行文件确定插入点;在所述插入点处设置跳转指令;根据所述跳转指令设置第一桩代码。4.如权利要求1

3中任一项所述的方法,其中,所述基于所述第二桩代码,通过模拟器运行所述第二架构应用,生成第二结构图包括:根据所述第二架构应用的可执行文件生成寄存器标识;根据所述寄存器标识执行所述第一架构指令,并根据所述第二桩代码生成第二结构图。5.如权利要求4所述的方法,其中,所述根据所述寄存器标识执行所述第一架构指令,并根据所述第二桩代码生成第二结构图,包括:根据所述寄存器标识确定执行所述第一架构指令时的第二应用执行分支;根据所述第二应用执行分支执行所述第二桩代码生成第二结构图。6.如权利要求...

【专利技术属性】
技术研发人员:黄林
申请(专利权)人:统信软件技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1