信息获取方法、装置、电子设备及计算机存储介质制造方法及图纸

技术编号:24330692 阅读:12 留言:0更新日期:2020-05-29 19:30
本申请实施例提供了一种信息获取方法、装置、电子设备及计算机存储介质。信息获取方法包括:通过第一可调用文件拦截动态内存操作指令,并转换为动态内存调用函数,以根据动态内存调用函数执行动态内存操作指令所指示的动态内存操作;通过第一可调用文件获取根据动态内存操作的操作结果确定的动态内存的信息。通过本实施例提供的方案,无需修改源代码即可确定动态内存的信息,并可提高动态内存的信息的准确度。

【技术实现步骤摘要】
信息获取方法、装置、电子设备及计算机存储介质
本申请实施例涉及数据处理
,尤其涉及一种信息获取方法、装置、电子设备及计算机存储介质。
技术介绍
通常,为了确定应用程序的动态内存的使用情况,需要对应用程序的源代码进行改写,以实现应用程序对内存分配/释放接口的调用,进而获取应用程序对动态内存的使用情况的信息。但是,这种方式需要修改应用程序,如果没有应用程序源代码,该方式将完全失效。即使有应用程序源代码进行改写,这种方式仍会增加应用程序动态内存实现的工作量和代码实现复杂度。因此,现有技术亟需解决的技术问题是,如何提供一种灵活的实现应用程序的动态内存处理和信息获取的方案。
技术实现思路
有鉴于此,本申请实施例所解决的技术问题之一在于提供一种信息获取方法、装置、电子设备及计算机存储介质,用以克服或缓解现有技术中的部分问题。本申请实施例提供了一种信息获取方法,其包括:通过第一可调用文件拦截动态内存操作指令,并转换为动态内存调用函数,以根据所述动态内存调用函数执行所述动态内存操作指令所指示的动态内存操作;通过所述第一可调用文件获取根据所述动态内存操作的操作结果确定的动态内存的信息。本申请实施例提供了一种信息获取装置,其包括:拦截模块,用于通过第一可调用文件拦截动态内存操作指令,并转换为动态内存调用函数,以根据所述动态内存调用函数执行所述动态内存操作指令所指示的动态内存操作;获取模块,用于通过所述第一可调用文件获取根据所述动态内存操作的操作结果确定的动态内存的信息。本申请实施例提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如上所述的信息获取方法对应的操作。本申请实施例提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的信息获取方法。本实施例提供的方案,通过第一可调用文件拦截动态内存操作指令,并转换为动态内存调用函数,以根据所述动态内存调用函数执行所述动态内存操作指令所指示的动态内存操作,使得动态内存操作的执行是通过第一可调用文件实现的,因此无需修改源代码,由于第一可调用文件可被进程或进程对应的其他可调用文件调用,因此,通过第一可调用文件可以拦截到进程或进程对应的其他可调用文件的动态内存操作指令,并执行指令所指示的动态内存操作,进而通过所述第一可调用文件获取根据所述动态内存操作的操作结果确定的动态内存的信息时,动态内存信息也可以为进程或进程对应的其他可调用文件对应的动态内存的信息,而不受限于进程本身,提高了动态内存的信息的准确度。附图说明后文将参照附图以示例性而非限制性的方式详细描述本申请实施例的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。附图中:图1为本申请实施例一中的信息获取方法的流程示意图;图2a为本申请实施例二中的信息获取方法的流程示意图;图2b为本申请实施例二中执行动态内存操作方法的流程示意图;图2c为本申请实施例二中获取物理内存大小的方法的流程示意图;图3a为本申请实施例三中的操作系统的结构示意图;图3b为本申请实施例三中信息获取方法的流程示意图;图3c为本申请实施例三中增加或删除动态内存信息的流程示意图;图3d为本申请实施例三中输出动态内存信息的流程示意图;图4为本申请实施例四中信息获取装置的结构示意图;图5为本申请执行信息获取方法的一些电子设备的硬件结构示意图。具体实施方式实施本申请实施例的任一技术方案必不一定需要同时达到以上的所有优点。为了使本领域的人员更好地理解本申请实施例中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请实施例保护的范围。下面结合本申请实施例附图进一步说明本申请实施例具体实现。图1为本申请实施例一中的信息获取方法的流程示意图;如图1所示,其包括以下步骤:S102、通过第一可调用文件拦截动态内存操作指令,并转换为动态内存调用函数,以根据所述动态内存调用函数执行所述动态内存操作指令所指示的动态内存操作。动态内存是在进程运行过程中,进程所在的操作系统为进程分配的动态内存。进程具体可以为运行在操作系统中的应用程序。动态内存操作指令用于指示进程对动态内存进行的操作,动态内存操作指令可以包括动态内存分配指令、动态内存释放指令、动态内存查询指令等,本实施例对此不进行限定。对应的,动态内存操作可以包括:调用动态内存分配接口进行的动态内存分配操作,调用动态内存释放接口进行的动态内存释放操作等。动态内存分配接口用于分配动态内存,动态内存释放接口用于释放已经分配的动态内存。另外,动态内存操作指令可由进程生成,亦可由进程对应的其他可调用文件生成,本实施例对此同样不进行限定。可调用文件是可被进程或操作系统调用的文件,可调用文件包括但不限于各种库文件,如静态库文件、动态库文件等等。通过可调用文件,当调用者自身不具有某些功能时,可调用文件可以很好地进行补充。并且,可调用文件可被不同的调用者调用,以帮助调用者实现相应的功能。由此,大大降低了调用者的实现成本。可调用文件中可以包括实现不同功能的函数、数据和数据通道,进程可以通过调用其中的函数或使用其中的数据以实现相应的功能。并且,可调用文件无需增加至进程的源代码中,使得可调用文件的使用更加灵活、简单。通过第一可调用文件对动态内存操作指令进行拦截,并转换为第一可调用文件中的动态内存调用函数,从而根据动态内存调用函数执行动态内存操作,使得动态内存操作指令由第一可调用文件执行,从而使得第一可调用文件获取动态内存操作指令的执行结果。由于动态内存操作指令是第一可调用文件通过拦截获取的,动态内存操作指令可能不是第一可调用文件能够直接执行的指令,因此,将动态内存操作指令转换为第一可调用文件中对应的动态内存调用函数,使得第一可调用文件能够直接根据动态内存调用函数执行动态内存操作。例如,若动态内存操作指令指示的动态内存操作可以包括动态内存分配操作或者动态内存释放操作,而执行这两个操作所调用的接口由进程对应的基本库提供,而并非由第一可调用文件提供,因此,在拦截到动态内存操作指令后,第一可调用文件可能不能直接执行动态内存操作指令。此时,可以根据动态内存操作指令所调用的接口(例如动态内存分配操作或者动态内存释放操作所调用的接口),转换得到第一可调用文件中的动态内存调用函数,并可以根据动态内存调用函数调用基本库中对应的接口,执行动态内存操作。另外,本实施例中,由于增加第一可调用文件时无需修改本文档来自技高网...

【技术保护点】
1.一种信息获取方法,包括:/n通过第一可调用文件拦截动态内存操作指令,并转换为动态内存调用函数,以根据所述动态内存调用函数执行所述动态内存操作指令所指示的动态内存操作;/n通过所述第一可调用文件获取根据所述动态内存操作的操作结果确定的动态内存的信息。/n

【技术特征摘要】
1.一种信息获取方法,包括:
通过第一可调用文件拦截动态内存操作指令,并转换为动态内存调用函数,以根据所述动态内存调用函数执行所述动态内存操作指令所指示的动态内存操作;
通过所述第一可调用文件获取根据所述动态内存操作的操作结果确定的动态内存的信息。


2.根据权利要求1所述的方法,其中,所述动态内存操作包括:调用动态内存分配接口进行的动态内存分配操作,和/或,调用动态内存释放接口进行的动态内存释放操作;对应的,所述动态内存操作的操作结果包括:所述动态内存分配操作对应的第一结果,和/或,所述动态内存释放操作对应的第二结果。


3.根据权利要求1所述的方法,其中,所述通过第一可调用文件拦截动态内存操作指令,并转换为动态内存调用函数,以根据所述动态内存调用函数执行所述动态内存操作指令所指示的动态内存操作,包括:
解析拦截到的所述动态内存操作指令,确定所述动态内存操作指令所指示的接口名称;
根据所述接口名称生成所述第一可调用文件中对应的动态内存调用函数;
通过所述动态内存调用函数,在基本库中,查找与所述接口名称对应的基本库函数,以通过所述基本库函数执行所述动态内存操作指令所指示的动态内存操作。


4.根据权利要求1所述的方法,其中,所述方法还包括:
通过环境变量对应用程序加载的可调用文件进行设置,使所述应用程序在加载所需的基本库之前加载所述第一可调用文件。


5.根据权利要求1所述的方法,其中,所述通过所述第一可调用文件获取根据所述动态内存操作对应操作结果确定的动态内存的信息,包括:
通过所述第一可调用文件,从所...

【专利技术属性】
技术研发人员:关乃轩
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1