CN104965786B - 一种应用程序的调试方法、调试主机及运行主机 - Google Patents
一种应用程序的调试方法、调试主机及运行主机 Download PDFInfo
- Publication number
- CN104965786B CN104965786B CN201510358840.XA CN201510358840A CN104965786B CN 104965786 B CN104965786 B CN 104965786B CN 201510358840 A CN201510358840 A CN 201510358840A CN 104965786 B CN104965786 B CN 104965786B
- Authority
- CN
- China
- Prior art keywords
- host
- state
- debugging
- application program
- process information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种应用程序的调试方法,用于确保在应用程序调试的同时,该应用程序在运行主机上正常运行。本发明实施例方法包括:调试主机从镜像文件中获取第一进程的状态信息,所述第一进程为所述运行主机运行应用程序时对应的进程,所述第一进程的状态信息包括所述应用程序的代码和运行所述应用程序时的数据;所述调试主机将第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程,所述第二进程为预先创建的进程;所述调试主机通过所述第一进程对所述应用程序进行调试。本发明实施例还提供一种调试主机和一种运行主机,用于确保在应用程序调试的同时,该应用程序在运行主机上正常运行。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种应用程序的调试方法、调试主机及运行主机。
背景技术
随着硬件性能的不断提升,使得其上运行的应用程序功能日益丰富,应用程序的软件代码规模也不断增大,随着代码的规模的增大,代码中隐藏的错误也更加难以被发现。因此编制好的应用程序在投入实际运行时,需要对应用程序进行调试,以便对该应用程序中存在的语法错误和逻辑错误的及时进行修正。
现有技术中,通过远程调试的方法实现应用程序的调试,该方法的具体过程为在运行主机上运行调试程序服务端,该运行主机与客户端之间通信连接,通过该客户端远程控制该调试程序服务端来调试运行主机上的应用程序。
然而,通过远程调试来调试应用程序的方法,直接在运行主机上对应用程序进行调试,调试过程中需要终止该应用程序,会对该应用程序的正常运行产生影响。
发明内容
本发明实施例提供了一种应用程序的调试方法、调试主机及运行主机,用于确保在应用程序调试的同时,该应用程序在运行主机上正常运行。
本发明实施例第一方面提供了一种应用程序的调试方法,包括:
调试主机从镜像文件中获取第一进程的状态信息,所述第一进程为所述运行主机运行应用程序时对应的进程,所述第一进程的状态信息包括所述应用程序的代码和运行所述应用程序时的数据;
所述调试主机将第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程,所述第二进程为预先创建的进程;
所述调试主机通过所述第一进程对所述应用程序进行调试。
结合本发明实施例的第一方面,在本发明第一方面的第一种实现方式中,所述调试主机将第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程包括:
所述调试主机通过系统内核的系统调用,将所述第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程。
结合本发明实施例的第一方面,在本发明第一方面的第二种实现方式中,所述调试主机将第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程包括:
所述调试主机接收用户终端发送的第一代码;
所述调试主机将所述第一代码和所述第一进程的状态信息映射至所述第二进程的空闲内存地址空间中;
所述调试主机通过访问所述空闲内存地址空间,读取第一代码;
所述调试主机通过读取所述第一代码,将所述第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程。
结合本发明实施例第一方面的第二种实现方式,在本发明第一方面的第三种实现方式中,所述调试主机通过执行所述第一代码,将所述第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程包括:
所述调试主机将非空闲内存空间中的第二进程的状态信息删除;
将所述空闲内存地址空间中的所述第一进程的状态信息映射到所述非空闲内存地址空间中,以得到所述第一进程。
结合本发明实施例的第一方面,在本发明第一方面的第四种实现方式中,所述方法还包括:
当所述应用程序崩溃时,所述调试主机获取运行所述应用程序时的日志信息和核心转储信息;
所述调试主机对所述应用程序进行调试包括,所述调试主机利用所述第一进程的状态信息、所述日志信息和所述核心转储信息对所述应用程序进行调试。
结合本发明实施例的第一方面或第一方面的的第一种实现方式或第一方面的的第二种实现方式或第一方面的的第三种实现方式或第一方面的的第四种实现方式,在本发明第一方面的第五种实现方式中,在所述调试主机从镜像文件中获取第一进程的状态信息之前,还包括:
所述调试主机接收所述运行主机发送的镜像文件,所述镜像文件中包含第一进程的状态信息。
结合本发明实施例的第一方面或第一方面的的第一种实现方式或第一方面的的第二种实现方式或第一方面的的第三种实现方式或第一方面的的第四种实现方式,在本发明第一方面的第六种实现方式中,在所述调试主机从镜像文件中获取第一进程的状态信息之前,还包括:
从所述运行主机中的网络文件系统中,获取所述镜像文件。
本发明实施例第二方面提供了一种应用程序调试的方法,包括:
运行主机获取第一进程的状态信息,所述第一进程为运行主机上运行应用程序时对应的进程,所述第一进程的状态信息包括所述应用程序的代码和运行所述应用程序时的数据;
所述运行主机将所述第一进程的状态信息存储到镜像文件中;
所述运行主机向调试主机发送所述镜像文件。
结合本发明实施例的第二方面,在本发明实施例第二方面的第一种实现方式中,所述运行主机获取第一进程的状态信息包括:
所述运行主机接收用户终端发送的获取指令,所述获取指令用于指示所述运行主机获取所述第一进程的状态信息;
所述运行主机将所述获取指令转换成获取代码,并将所述转换代码映射到所述第一进程的内存地址空间;
所述运行主机通过访问所述第一内存地址空间,读取所述获取代码,以获取所述第一进程的状态信息。
结合本发明实施例的第二方面或第二方面的第一种实现方式,在本发明实施例第二方面的第二种实现方式中,所述运行主机向调试主机发送所述镜像文件包括:
所述运行主机将所述镜像文件存储到网络文件系统中;
所述运行主机通过所述网络文件系统将所述镜像文件共享给所述调试主机。
本发明实施例第三方面提供了一种调试主机,包括:
获取模块,用于从镜像文件中获取第一进程的状态信息,所述第一进程为所述运行主机运行应用程序时对应的进程,所述状态信息包括所述应用程序的代码和运行所述应用程序时的数据;
更新模块,用于将第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程,所述第二进程为预先创建的进程;
调试模块,用于通过所述第一进程对所述应用程序进行调试。
结合本发明实施例的第三方面,在本发明实施例第三方面的第一种实现方式中,所述更新模块具体用于通过系统内核的系统调用,将所述第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程。
结合本发明实施例的第三方面,在本发明第三方面的第二种实现方式中,所述更新模块具体用于:
接收用户终端发送的第一代码;
将所述第一代码和所述第一进程的状态信息映射至所述第二进程的空闲内存地址空间中;
通过访问所述空闲内存地址空间,读取第一代码;
通过读取所述第一代码,将所述第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程。
结合本发明实施例第三方面的第二种实现方式,在本发明第三方面的第三种实现方式中,所述更新模块具体用于:
将非空闲内存空间中的第二进程的状态信息删除;
将所述空闲内存地址空间中的所述第一进程的状态信息映射到所述非空闲内存地址空间中,以得到所述第一进程。
结合本发明实施例的第三方面,在本发明第三方面的第四种实现方式中,所述获取模块还用于:
当所述应用程序崩溃时,获取运行所述应用程序时的日志信息和核心转储信息;
所述调试模块具体还用于利用所述日志信息和所述核心转储信息对所述应用程序进行调试。
结合本发明实施例的第三方面或第三方面的的第一种实现方式或第一方面的的第二种实现方式或第三方面的的第三种实现方式或第三方面的的第四种实现方式,在本发明第三方面的第五种实现方式中,所述调试主机还包括:
接收模块,用于在所述调试主机从镜像文件中获取第一进程的状态信息之前,接收所述运行主机发送的镜像文件,所述镜像文件中包含第一进程的状态信息。
结合本发明实施例的第三方面或第三方面的的第一种实现方式或第一方面的的第二种实现方式或第三方面的的第三种实现方式或第三方面的的第四种实现方式,在本发明第三方面的第六种实现方式中,所述获取模块还用于在从镜像文件中获取第一进程的状态信息之前,从所述运行主机中的网络文件系统中,获取所述镜像文件。
本发明实施例第四方面提供了一种运行主机,包括:
获取模块,获取第一进程的状态信息,所述第一进程为运行主机上运行应用程序时对应的进程,所述第一进程的状态信息包括所述应用程序的代码和运行所述应用程序时的数据;
存储模块,用于将所述第一进程的状态信息存储到镜像文件中;
发送模块,用于向调试主机发送所述镜像文件。
结合本发明实施例的第四方面,在本发明实施例第四方面的第一种实现方式中,所述获取模块具体用于:
接收用户终端发送的获取指令,所述获取指令用于指示所述获取模块获取所述第一进程的状态信息;
将所述获取指令转换成获取代码,并将所述转换代码映射到所述第一进程的内存地址空间;
通过访问所述第一内存地址空间,读取所述获取代码,以获取所述第一进程的状态信息。
结合本发明实施例的第四方面或第四方面的第一种实现方式,在本发明实施例第四方面的第二种实现方式中,所述发送模块具体用于:
将所述镜像文件存储到网络文件系统中;
通过所述网络文件系统将所述镜像文件共享给所述调试主机。
应用本发明实施例的技术方案具有如下有益效果:
调试主机从镜像文件中获取应用程序对应的第一进程的状态信息,然后将预先创建的第二进程的状态信息更新为该第一进程的状态信息,从而得到第一进程,从而使该调试主机可以通过该第一进程对该应用程序进程调试,相对于现有技术,该应用程序无需在运行主机上进行调试,因此可以确保在应用程序调试的同时,该应用程序在运行主机上正常运行。
附图说明
图1为本发明实施例中一种应用程序调试方法的一个实施例示意图;
图2为本发明实施例中一种应用程序调试方法的另一实施例示意图;
图3为本发明实施例中一种应用程序调试方法的另一实施例示意图;
图4为本发明实施例中一种调试主机的一个实施例示意图;
图5为本发明实施例中一种调试主机的另一个实施例示意图;
图6为本发明实施例中一种运行主机的一个实施例示意图;
图7为本发明实施例中一种调试主机的结构例示意图;
图8为本发明实施例中一种运行主机的结构例示意图。
具体实施方式
本发明实施例提供了一种应用程序的调试方法、调试主机及运行主机,用于确保在应用程序调试的同时,该应用程序在运行主机上正常运行。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明实施例中一种应用程序调试放的一个实施例包括:
101、调试主机从镜像文件中获取第一进程的状态信息,所述第一进程为所述运行主机运行应用程序时对应的进程,所述第一进程的状态信息包括所述应用程序的代码和运行所述应用程序时的数据。
其中,进程(Process)是应用程序执行过程的一个实例,一个应用程序在执行时可以调用多个进程,同一个应用程序对应的多个进程称为进程树,本实施例中的第一进程可以是一个进程也可以是进程树。进程包括文本区域(text region)、数据区域(dataregion)和堆栈(stack region),其中文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。因此本实施例中,该第一进程的状态信息主要包括应用程序的代码及运行该应用程序时的数据,其中,该数据包括程序运行时分配的内存地址、寄存器中暂存的数据、文件系统中保存的数据以及网络通信数据等。
其中,镜像文件可以是由运行主机生成的也可以是用户通过镜像文件制作工具制作而成的,镜像文件格式有ISO、BIN、IMG、TAO、DAO、CIF、FCD等,该镜像文件中存储有第一进程中的状态信息。
102、所述调试主机将第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程,所述第二进程为预先创建的进程。
其中,调试主机预先保存有另一应用程序,通过运行该另一应用程序从而创建第二进程,该调试主机在获取到第一进程的状态信息之后,可以将该第二进程的状态信息更新该第一进程的状态信息,从而得到第一进程。
103、所述调试主机通过所述第一进程对所述应用程序进行调试。
可以理解的是,该调试主机可以通过该第一进程的对该应用程序进行调试。
本发明实施例中,调试主机从镜像文件中获取应用程序对应的第一进程的状态信息,然后将预先创建的第二进程的状态信息更新为该第一进程的状态信息,从而得到第一进程,从而使该调试主机可以通过该第一进程对该应用程序进程调试,相对于现有技术,该应用程序无需在运行主机上进行调试,因此可以确保在应用程序调试的同时,该应用程序在运行主机上正常运行。
在本发明的一些实施例中,调试主机可以通过主动的方式或者被动的方式更新第二进程的状态信息。请参阅图2,本发明实施例中一种应用程序调试放的另一个实施例包括:
201、所述调试主机获取镜像文件,所述镜像文件中包含第一进程的状态信息。
202、调试主机从镜像文件中获取第一进程的状态信息,所述第一进程为所述运行主机运行应用程序时对应的进程,所述第一进程的状态信息包括所述应用程序的代码和运行所述应用程序时的数据。
203、所述调试主机将第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程,所述第二进程为预先创建的进程。
204、所述调试主机通过所述第一进程对所述应用程序进行调试。
本发明的一些实施例中,调试主机可以接收运行主机发送的镜像文件。
可选的,步骤201具体可以包括:
201a、所述调试主机接收所述运行主机发送的镜像文件,所述镜像文件中包含第一进程的状态信息。
其中,该镜像文件可以由用户按照镜像文件工具制作而成,也可以由运行主机主动生成,该运行主机可以将第一进程的状态信息存储在该镜像文件中。
本发明的另一些实施例中,调试主机可以从运行主机的网络文件系统中获取该镜像文件。
可选的,步骤201具体可以包括:
201b、从所述运行主机中的网络文件系统中,获取所述镜像文件。
其中,运行主机中包括网络文件系统(Network File System,NFS),网络文件系统是UNIX操作系统支持的文件系统中的一种,也被称为NFS。NFS允许一个系统在网络上与他人共享目录和文件,通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。
本发明实施一些实施例中,调试主机在获取到第一进程的状态信息之后,可以主动更新第二进程的状态信息,从而提升状态信息的获取效率。
可选的,步骤203具体可以包括:
203a、所述调试主机通过系统内核的系统调用,将所述第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程。
其中,调试主机在获取到第一进程的状态信息之后,记录该第一进程的状态信息,然后通过系统内核的系统调用将所述第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程。比如当调试主机获取到的第一进程的状态信息为应用程序的代码和内存地址时,该调试主机可以记录该代码中的标识符及内存地址的起始地址和结束地址,然后该调试主机通过系统内核的系统调用,调用系统中与该标识符对应的代码,并分配由该起始地址和结束地址构成的内存地址给该第二进程,从而使的该第二进程的状态信息更新为第一进程的状态信息。
可以理解的是,本实施例中的系统调用是由操作系统实现的所有系统调用所构成的集合即程序接口或应用编程接口(Application Programming Interface,API),是应用程序同系统之间的接口。
本发明实施另一些实施例中,调试主机在获取到第一进程的状态信息之后,可以被动更新第二进程的状态信息。
可选的,步骤203具体可以包括:
203b、所述调试主机接收用户终端发送的第一代码。
可以理解的是,调试主机在获取到第一进程的状态信息之后,用户终端可以根据该第一进程的状态信息和第二进行的状态信息,编写第一代码,该第一代码用于指示调试主机将该第二进程的状态信息更新为该第一进程的状态信息,该用户终端将该第一代码发送给该调试主机。
203c、所述调试主机将所述第一代码和所述第一进程的状态信息映射至所述第二进程的空闲内存地址空间中。
其中,调试主机为第二进程的分配的内存地址空间中存在空闲内存地址空间,或者在该第二进程的内存地址空间中不存在空闲内存地址空间时,该调试主机可以将释放该第二进程的非空闲内存地址空间,从而得到空闲内存地址空间。调试主机可以创建该第一进程的状态信息和该空闲内存地址空间的映射关系,并创建该第一代码和该空闲内存地址空间的映射关系,从而使该第一进程的状态信息和该第一代码映射至该空闲内存地址空间。
203d、所述调试主机通过访问所述空闲内存地址空间,读取第一代码。
可以理解的是,调试主机可以通过访问该空闲内存地址空间,从而读取该第一代码。
203e、所述调试主机通过读取所述第一代码,将所述第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程。
可以理解的是,该调试主机可以通过读取该第一代码,从而将第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程。
可选的,本发明实施例中步骤203e具体可以包括:
1)、所述调试主机将非空闲内存空间中的第二进程的状态信息删除。
其中,第二进程的非空闲内存空闲中存储有第二进程的状态信息,该第二进程的状态信息包括第二进程对应的另一应用程序的代码、内存地址、寄存器中暂存的数据、文件系统中的数据以及网络通信数据等。该调试主机通过读取该第一代码,删除或释放该第二进程的状态信息。
2)、将所述空闲内存地址空间中的所述第一进程的状态信息映射到所述非空闲内存地址空间中,以得到所述第一进程。
可以理解的是,调试主机在将第二进程的状态信息删除之后,可以将该第二进程的状态信息映射至该非空闲内存地址空间中,从而得到第一进程。
本发明的一些实施例中,在更新第二进行的状态信息得到第一进程之后,调试主机按照用户发送的指令执行该第一进程从而对应用程序进程调试。
可选的,步骤204具体包括:
204a、所述调试主机接收用户终端发送的指令,按照所述指令执行所述第一进程,从而实现对应用程序的调试。
可以理解的是,调试主机在接收到用户发送的的指令之后,可以将该指令转换成第二代码,然后通过读取该第二代码对所述第一应用程序进程进行调试。
需要说明的是,该第二代码包括控制程序执行类代码、获取应用程序进程信息类代码和修改应用程序进程信息类代码。其中,控制程序执行类指令用于控制应用程序的执行,具体包括单步执行、执行到函数返回以及继续执行等,信息获取类代码用于获取应用程序执行过程中的动态信息,信息修改类代码用于修改应用程序执行过程中的信息。
本发明的另一些实施例中,当所述应用程序崩溃时,调试主机获取运行所述应用程序的日志信息和核心转储(Core Dump)信息,该调试主机利用所述第一进程的状态信息、所述日志信息和所述核心转储信息对所述应用程序进行调试。
可选的,步骤204具体包括:
204b、所述调试主机利用所述第一进程的状态信息、所述日志信息和所述核心转储信息对所述应用程序进行调试。
其中,应用程序在运行过程中发生崩溃需要复位时,系统会默认输出日志文件,可通过分析日志文件定位故障点。此外,当程序运行过程中异常终止或崩溃,Linux操作系统会将程序当时的内存状态记录下来,保存在一个文件中,这种行为就叫做Core Dump,CoreDump对于编程人员诊断和调试程序是非常有帮助的,因为对于有些程序错误是很难重现的,例如指针异常,而Core Dump文件可以再现程序出错时的情景。
可选的,本发明实施例中,在步骤204之后还可以包括步骤205。
205、所述调试主机获取调试结果,并向用户终端反馈所述调试结果。
可以理解的是,调试主机可以获取调试结果,并向用户终端反馈该调试结果,具体的,该调试主机将该调试结果以日志的形式反馈给用户终端。
上面实施例中以调试主机作为执行主体对本发明实施例中一种应用程序调试的方法进行了描述,下面以运行主机作为执行主体对本发明实施例中一种应用程序的调试方法进行描述。
请参阅图3,本发明实施例中一种应用程序的调试方法包括:
301、运行主机获取第一进程的状态信息,所述第一进程为运行主机上运行应用程序时对应的进程,所述第一进程的状态信息包括所述应用程序的代码和运行所述应用程序时的数据。
可以理解的是,在应用程序调用第一进程的运行过程中,运行主机周期性地或非周期性地获取该第一进程的状态信息。
302、所述运行主机将所述第一进程的状态信息存储到镜像文件中。
可以理解的是,运行主机可以预先创建镜像文件,并将获取到的第一进程状态信息保存到该镜像文件中。
此外,该镜像文件也可以由用户终端利用镜像文件工具制作而成,然后该运行主机接收用户终端发送的该镜像文件。
303、所述运行主机向调试主机发送所述镜像文件。
可以理解的是,在将第一进程的状态信息存储到镜像文件中之后,该运行主机可以向调试主机发送所述镜像文件。
可选的,本发明实施例中,在步骤301之前还可以包括步骤300。
300、所述运行主机接收用户终端发送的获取指令,并根据所述获取指令获取所述第一进程的状态信息。
可以理解的是,所述运行主机接收用户终端发送的获取指令之后,所述运行主机将所述获取指令转换成获取代码,并将所述转换代码映射到所述第一进程的内存地址空间,所述运行主机通过访问所述第一内存地址空间,读取所述获取代码,从而获取所述第一进程的状态信息。
可选的,本发明实施例中,步骤303具体包括:
303a、所述运行主机将所述镜像文件存储到网络文件系统中。
可以理解的是,运行主机将镜像文件存储到网络文件系统NFS中。
303b、所述运行主机通过所述网络文件系统将所述镜像文件共享给所述调试主机。
可以理解的是,运行主机将镜像文件存储到网络文件系统NFS中之后,可以通过该网络文件系统将镜像文件共享给调试主机。
需要说明的是,在实际应用中,该运行主机还可以将该镜像文件直接发给调试主机,具体此处不作限定。
应用本发明实施例的技术方案具有如下有益效果:
运行主机将获取到的第一进程的状态信息存储到镜像文件中,然后将该镜像文件发送给调试主机,使调试主机可以利用该镜像文件中的第一进程状态信息对第二进程的状态信息进行更新得到第一进程,然后该调试主机通过该第一进程对应用程序进行调试,相对于现有技术,无需在运行主机上进行应用程序的调试,从而确保应用程序调试时,运行主机正常运行该应用程序。
此外,将镜像文件通过网络文件系统共享给调试主机,可以使镜像文件更快的发送给调试主机。进一步的,该调试主机可以更快的利用该镜像文件中的第一进程状态信息完成对应用程序的调试,从而起到提升应用程序调试效率的作用。
上面对本发明实施例中的一种应用程序的调试方法进行了描述,下面对本发明实施例中的一种调试主机进行描述,请参阅图4,本发明实施例中一种调试主机400的一个实施例包括:
获取模块401,用于从镜像文件中获取第一进程的状态信息,所述第一进程为所述运行主机运行应用程序时对应的进程,所述状态信息包括所述应用程序的代码和运行所述应用程序时的数据。
更新模块402,用于将第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程,所述第二进程为预先创建的进程。
调试模块403,用于通过所述第一进程对所述应用程序进行调试。
在本发明的一些实施例中,该调试主机还包括接收模块,请参阅图5,本发明实施例中一种调试主机500的另一个实施例包括:
接收模块501,用于在所述调试主机从镜像文件中获取第一进程的状态信息之前,接收所述运行主机发送的镜像文件,所述镜像文件中包含第一进程的状态信息。
获取模块502,用于从镜像文件中获取第一进程的状态信息,所述第一进程为所述运行主机运行应用程序时对应的进程,所述状态信息包括所述应用程序的代码和运行所述应用程序时的数据。
可选的,在本发明的一些实施例中,获取模块502还用于当所述应用程序崩溃时,获取运行所述应用程序时的日志信息和核心转储信息。
可选的,在本发明的另一些实施例中,获取模块502还用于在从镜像文件中获取第一进程的状态信息之前,从所述运行主机中的网络文件系统中,获取所述镜像文件。
更新模块503,用于将第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程,所述第二进程为预先创建的进程。
可选的,在本发明的一些实施例中,更新模块503将第二进程的状态信息更新为所述第一进程的状态信息具体用于通过系统内核的系统调用,将所述第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程。
可选的,在本发明的另一些实施例中,更新模块503将第二进程的状态信息更新为所述第一进程的状态信息具体用于接收用户终端发送的第一代码,并将所述第一代码和所述第一进程的状态信息映射至所述第二进程的空闲内存地址空间中,再通过访问所述空闲内存地址空间,读取第一代码,然后通过读取所述第一代码,将所述第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程。
可选的,本发明实施例中,更新模块503通过读取所述第一代码,将非空闲内存空间中的第二进程的状态信息删除,然后将所述空闲内存地址空间中的所述第一进程的状态信息映射到所述非空闲内存地址空间中,以得到所述第一进程。
调试模块504,用于通过所述第一进程对所述应用程序进行调试。
可选的,当所述应用程序崩溃时,所述调试模块504具体还用于利用所述日志信息和所述核心转储信息对所述应用程序进行调试。
上面对本发明实施例中的一种调试主机进行了描述,下面对本发明实施例中的一种运行主机进行描述,请参阅图6,本发明实施例中一种运行主机600的一个实施例包括:
获取模块601,获取第一进程的状态信息,所述第一进程为运行主机上运行应用程序时对应的进程,所述第一进程的状态信息包括所述应用程序的代码和运行所述应用程序时的数据。
可选的,在本发明的一些实施例中,获取模块601获取第一进程的状态信息具体用于通过接收用户终端发送的获取指令,所述获取指令用于指示所述获取模块获取所述第一进程的状态信息,并将所述获取指令转换成获取代码,并将所述转换代码映射到所述第一进程的内存地址空间,再通过访问所述第一内存地址空间,读取所述获取代码,以获取所述第一进程的状态信息接收用户终端发送的获取指令,所述获取指令用于指示所述获取模块获取所述第一进程的状态信息,再将所述获取指令转换成获取代码,并将所述转换代码映射到所述第一进程的内存地址空间,然后通过访问所述第一内存地址空间,读取所述获取代码,以获取所述第一进程的状态信息。
存储模块602,用于将所述第一进程的状态信息存储到镜像文件中。
发送模块603,用于向调试主机发送所述镜像文件。
可选的,在本发明一些实例中,发送模块603向调试主机发送所述镜像文件具体通过将所述镜像文件存储到网络文件系统中,然后通过所述网络文件系统将所述镜像文件共享给所述调试主机。
本发明实施例还提供一种计算机存储介质,该计算机存储介质可存储有程序,该程序执行时包括上述图1和图2对应的方法实施例中记载的应用程序调试方法的部分或全部步骤。
请参考图7,本发明实施例还提供一种调试主机100。
该调试主机100可以是微处理计算机。比如:该调试主机100可以是通用计算机、客户定制机、手机终端或平板机等便携设备中的一种。调试主机100可包括处理器1001,存储器1002,通信接口1003和总线1004;所述处理器1001,存储器1002和通信接口1003通过总线1004连接并完成相互间的通信。所述存储器1002用于存储程序代码;当所述计算机设备100运行时,所述处理器1001执行所述存储器1002存储的所述程序代码,以使所述计算机设备100执行上文方法实施例中记载的应用程序调试方法。
具体的,
所述总线1004可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线或外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称为EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线中的一种或多种。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器1002用于存储可执行程序代码,该程序代码包括计算机操作指令。当计算机设备100执行该程序代码时,计算机设备100可以完成图1实施例的步骤101~103,也可以实现图2实施例的步骤201~205。存储器1002可以包含高速RAM(Ramdom Access Memory)存储器。可选地,存储器1002还可以还包括非易失性存储器(non-volatile memory)。例如存储器1002可以包括磁盘存储器。
处理器1001可以是一个中央处理器(Central Processing Unit,简称为CPU),或者是处理器1001可以特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者处理器1001可以是被配置成实施本发明实施例的一个或多个集成电路。
所述处理器1001,用于读取存储器1002中存储的指令,从而执行从镜像文件中获取第一进程的状态信息,所述第一进程为所述运行主机运行应用程序时对应的进程,所述第一进程的状态信息包括所述应用程序的代码和运行所述应用程序时的数据,将第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程,所述第二进程为预先创建的进程,通过所述第一进程对所述应用程序进行调试。
可选的,所述处理器1001还用于在从镜像文件中获取第一进程的状态信息之前获取镜像文件,所述镜像文件中包含第一进程的状态信息。
其中,所述处理器1001获取镜像文件具体通过从所述运行主机中的网络文件系统中,获取所述镜像文件。
可选的,所述处理器1001将第二进程的状态信息更新为所述第一进程的状态信息具体通过系统内核的系统调用,将所述第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程。
可选的,所述处理器1001将第二进程的状态信息更新为所述第一进程的状态信息具体通过接收用户终端发送的第一代码,将所述第一代码和所述第一进程的状态信息映射至所述第二进程的空闲内存地址空间中,通过访问所述空闲内存地址空间,读取第一代码,通过读取所述第一代码,将所述第二进程的状态信息更新为所述第一进程的状态信息。
其中,所述处理1001用于读取所述第一代码,将所述第二进程的状态信息更新为所述第一进程的状态信息具体通过将非空闲内存空间中的第二进程的状态信息删除,将所述空闲内存地址空间中的所述第一进程的状态信息映射到所述非空闲内存地址空间中。
可选的,所述处理器1001通过所述第一进程对所述应用程序进行调试,具体通过接收用户终端发送的指令,按照所述指令执行所述第一进程,从而实现对应用程序的调试。
可选的,所述处理器1001通过所述第一进程对所述应用程序进行调试,具体通过在应用程序运行过程中发生崩溃需要复位时,利用所述第一进程的状态信息、所述日志信息和所述核心转储信息对所述应用程序进行调试。
可选的,所述通信接口1003用于向用户终端反馈调试结果。
本发明实施例还提供一种计算机存储介质,该计算机存储介质可存储有程序,该程序执行时包括上述图3对应的方法实施例中记载的应用程序调试方法的部分或全部步骤。
请参考图8,本发明实施例还提供一种运行主机200。
该运行主机200可以是微处理计算机。比如:该运行主机200可以是通用计算机、客户定制机、手机终端或平板机等便携设备中的一种。运行主机200可包括处理器2001,存储器2002,通信接口2003和总线2004;所述处理器2001,存储器2002和通信接口2003通过总线2004连接并完成相互间的通信。所述存储器2002用于存储程序代码;当所述计算机设备200运行时,所述处理器2001执行所述存储器2002存储的所述程序代码,以使所述计算机设备200执行上文方法实施例中记载的应用程序调试方法。
具体的,
所述总线2004可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线或外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称为EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线中的一种或多种。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器2002用于存储可执行程序代码,该程序代码包括计算机操作指令。当计算机设备200执行该程序代码时,计算机设备100可以完成图3实施例的步骤300~3035。存储器2002可以包含高速RAM(Ramdom Access Memory)存储器。可选地,存储器2002还可以还包括非易失性存储器(non-volatile memory)。例如存储器2002可以包括磁盘存储器。
处理器2001可以是一个中央处理器(Central Processing Unit,简称为CPU),或者是处理器2001可以特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者处理器2001可以是被配置成实施本发明实施例的一个或多个集成电路。
所述处理器2001,用于读取存储器2002中存储的指令,从而执行获取第一进程的状态信息,所述第一进程为运行主机上运行应用程序时对应的进程,所述第一进程的状态信息包括所述应用程序的代码和运行所述应用程序时的数据,将所述第一进程的状态信息存储到镜像文件中。
所述通信接口2003,用于向调试主机发送所述镜像文件。
可选的,所述处理器2001还用于在获取第一进程的状态信息之前,接收用户终端发送的获取指令,并根据所述获取指令获取所述第一进程的状态信息。
可选的,所述通信接口2003用于向调试主机发送所述镜像文件具体通过将所述镜像文件存储到网络文件系统中,通过所述网络文件系统将所述镜像文件共享给所述调试主机。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (20)
1.一种应用程序的调试方法,其特征在于,包括:
调试主机从镜像文件中获取第一进程的状态信息,所述第一进程为运行主机运行应用程序时对应的进程,所述第一进程的状态信息包括所述应用程序的代码和运行所述应用程序时的数据;
所述调试主机将第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程,所述第二进程为预先创建的进程;其中,所述调试主机预先保存有用于创建所述第二进程的应用程序,通过运行所述用于创建所述第二进程的应用程序来预先创建所述第二进程;
所述调试主机通过所述第一进程对运行于所述运行主机的应用程序进行调试。
2.根据权利要求1所述的方法,其特征在于,所述调试主机将第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程包括:
所述调试主机通过系统内核的系统调用,将所述第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程。
3.根据权利要求1所述的方法,其特征在于,所述调试主机将第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程包括:
所述调试主机接收用户终端发送的第一代码;
所述调试主机将所述第一代码和所述第一进程的状态信息映射至所述第二进程的空闲内存地址空间中;
所述调试主机通过访问所述空闲内存地址空间,读取第一代码;
所述调试主机通过读取所述第一代码,将所述第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程。
4.根据权利要求3所述的方法,其特征在于,所述调试主机通过读取所述第一代码,将所述第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程包括:
所述调试主机将非空闲内存空间中的第二进程的状态信息删除;
将所述空闲内存地址空间中的所述第一进程的状态信息映射到所述非空闲内存地址空间中,以得到所述第一进程。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述运行于所述运行主机的应用程序崩溃时,所述调试主机获取运行所述运行于所述运行主机的应用程序时的日志信息和核心转储信息;
所述调试主机对所述运行于所述运行主机的应用程序进行调试包括:所述调试主机利用所述第一进程的状态信息、所述日志信息和所述核心转储信息对所述运行于所述运行主机的应用程序进行调试。
6.根据权利要求1至5中任一项所述的方法,其特征在于,在所述调试主机从镜像文件中获取第一进程的状态信息之前,还包括:
所述调试主机接收所述运行主机发送的镜像文件,所述镜像文件中包含第一进程的状态信息。
7.根据权利要求1至5中任一项所述的方法,其特征在于,在所述调试主机从镜像文件中获取第一进程的状态信息之前,还包括:
从所述运行主机中的网络文件系统中,获取所述镜像文件。
8.一种应用程序调试的方法,其特征在于,包括:
运行主机获取第一进程的状态信息,所述第一进程为运行主机上运行应用程序时对应的进程,所述第一进程的状态信息包括所述应用程序的代码和运行所述应用程序时的数据;
所述运行主机将所述第一进程的状态信息存储到镜像文件中;
所述运行主机向调试主机发送所述镜像文件,以使得所述调试主机从所述镜像文件中获取第一进程的状态信息,将第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程,通过所述第一进程对运行于所述运行主机的应用程序进行调试;其中,所述第二进程为预先创建的进程,所述调试主机预先保存有用于创建所述第二进程的应用程序,通过运行所述用于创建所述第二进程的应用程序来预先创建所述第二进程。
9.根据权利要求8所述的方法,其特征在于,所述运行主机获取第一进程的状态信息包括:
所述运行主机接收用户终端发送的获取指令,所述获取指令用于指示所述运行主机获取所述第一进程的状态信息;
所述运行主机将所述获取指令转换成获取代码,并将所述获取代码映射到所述第一进程的内存地址空间;
所述运行主机通过访问所述内存地址空间,读取所述获取代码,以获取所述第一进程的状态信息。
10.根据权利要求8或9所述的方法,其特征在于,所述运行主机向调试主机发送所述镜像文件包括:
所述运行主机将所述镜像文件存储到网络文件系统中;
所述运行主机通过所述网络文件系统将所述镜像文件共享给所述调试主机。
11.一种调试主机,其特征在于,包括:
获取模块,用于从镜像文件中获取第一进程的状态信息,所述第一进程为运行主机运行应用程序时对应的进程,所述状态信息包括所述应用程序的代码和运行所述应用程序时的数据;
更新模块,用于将第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程,所述第二进程为预先创建的进程;其中,所述调试主机预先保存有用于创建所述第二进程的应用程序,通过运行所述用于创建所述第二进程的应用程序来预先创建所述第二进程;
调试模块,用于通过所述第一进程对运行于所述运行主机的应用程序进行调试。
12.根据权利要求11所述的调试主机,其特征在于,所述更新模块具体用于通过系统内核的系统调用,将所述第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程。
13.根据权利要求11所述的调试主机,其特征在于,所述更新模块具体用于:
接收用户终端发送的第一代码;
将所述第一代码和所述第一进程的状态信息映射至所述第二进程的空闲内存地址空间中;
通过访问所述空闲内存地址空间,读取第一代码;
通过读取所述第一代码,将所述第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程。
14.根据权利要求13所述的调试主机,其特征在于,所述更新模块具体用于:
将非空闲内存空间中的第二进程的状态信息删除;
将所述空闲内存地址空间中的所述第一进程的状态信息映射到所述非空闲内存地址空间中,以得到所述第一进程。
15.根据权利要求11所述的调试主机,其特征在于,所述获取模块还用于:
当所述运行于所述运行主机的应用程序崩溃时,获取运行所述运行于所述运行主机的应用程序时的日志信息和核心转储信息;
所述调试模块具体还用于利用所述日志信息和所述核心转储信息对所述运行于所述运行主机的应用程序进行调试。
16.根据权利要求11至15中任一项所述的调试主机,其特征在于,所述调试主机还包括:
接收模块,用于在所述调试主机从镜像文件中获取第一进程的状态信息之前,接收所述运行主机发送的镜像文件,所述镜像文件中包含第一进程的状态信息。
17.根据权利要求11至15中任一项所述的调试主机,其特征在于,所述获取模块还用于在从镜像文件中获取第一进程的状态信息之前,从所述运行主机中的网络文件系统中,获取所述镜像文件。
18.一种运行主机,其特征在于,包括:
获取模块,获取第一进程的状态信息,所述第一进程为运行主机上运行应用程序时对应的进程,所述第一进程的状态信息包括所述应用程序的代码和运行所述应用程序时的数据;
存储模块,用于将所述第一进程的状态信息存储到镜像文件中;
发送模块,用于向调试主机发送所述镜像文件,以使得所述调试主机从所述镜像文件中获取第一进程的状态信息,将第二进程的状态信息更新为所述第一进程的状态信息,以得到所述第一进程,通过所述第一进程对运行于所述运行主机的应用程序进行调试;其中,所述第二进程为预先创建的进程,所述调试主机预先保存有用于创建所述第二进程的应用程序,通过运行所述用于创建所述第二进程的应用程序来预先创建所述第二进程。
19.根据权利要求18所述的运行主机,其特征在于,所述获取模块具体用于:
接收用户终端发送的获取指令,所述获取指令用于指示所述获取模块获取所述第一进程的状态信息;
将所述获取指令转换成获取代码,并将所述获取代码映射到所述第一进程的内存地址空间;
通过访问所述内存地址空间,读取所述获取代码,以获取所述第一进程的状态信息。
20.根据权利要求18或19所述的运行主机,其特征在于,所述发送模块具体用于:
将所述镜像文件存储到网络文件系统中;
通过所述网络文件系统将所述镜像文件共享给所述调试主机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510358840.XA CN104965786B (zh) | 2015-06-25 | 2015-06-25 | 一种应用程序的调试方法、调试主机及运行主机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510358840.XA CN104965786B (zh) | 2015-06-25 | 2015-06-25 | 一种应用程序的调试方法、调试主机及运行主机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104965786A CN104965786A (zh) | 2015-10-07 |
CN104965786B true CN104965786B (zh) | 2019-01-11 |
Family
ID=54219821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510358840.XA Active CN104965786B (zh) | 2015-06-25 | 2015-06-25 | 一种应用程序的调试方法、调试主机及运行主机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104965786B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105141776A (zh) * | 2015-09-14 | 2015-12-09 | 康佳集团股份有限公司 | 一种基于Android设备的远程控制调试方法及系统 |
CN105653386B (zh) * | 2015-12-30 | 2018-09-21 | 广东欧珀移动通信有限公司 | 一种进程崩溃处理方法及终端设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102129408A (zh) * | 2011-04-14 | 2011-07-20 | 电子科技大学 | 一种基于记录回放技术的嵌入式软件调试装置和方法 |
CN103580943A (zh) * | 2012-08-03 | 2014-02-12 | 亿赞普(北京)科技有限公司 | 一种网络软件在线测试方法和系统 |
US20140068568A1 (en) * | 2012-09-04 | 2014-03-06 | Salesforce.Com, Inc. | System and method for dynamically debugging data in a multi-tenant database environment |
CN104375857A (zh) * | 2014-10-22 | 2015-02-25 | 腾讯科技(深圳)有限公司 | 一种应用程序运行多个实例的方法、装置及终端设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102411519A (zh) * | 2011-09-08 | 2012-04-11 | 曙光信息产业股份有限公司 | 进程的恢复方法和装置 |
CN102799522A (zh) * | 2012-06-28 | 2012-11-28 | 浪潮(北京)电子信息产业有限公司 | 一种软件版本追溯测试的管理方法和系统 |
CN104102535B (zh) * | 2013-04-01 | 2018-10-02 | 华为技术有限公司 | 进程迁移方法和可迁移操作系统 |
-
2015
- 2015-06-25 CN CN201510358840.XA patent/CN104965786B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102129408A (zh) * | 2011-04-14 | 2011-07-20 | 电子科技大学 | 一种基于记录回放技术的嵌入式软件调试装置和方法 |
CN103580943A (zh) * | 2012-08-03 | 2014-02-12 | 亿赞普(北京)科技有限公司 | 一种网络软件在线测试方法和系统 |
US20140068568A1 (en) * | 2012-09-04 | 2014-03-06 | Salesforce.Com, Inc. | System and method for dynamically debugging data in a multi-tenant database environment |
CN104375857A (zh) * | 2014-10-22 | 2015-02-25 | 腾讯科技(深圳)有限公司 | 一种应用程序运行多个实例的方法、装置及终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104965786A (zh) | 2015-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111625452B (zh) | 流量回放方法和系统 | |
CN113641457B (zh) | 容器创建方法、装置、设备、介质及程序产品 | |
CN103176833B (zh) | 一种基于虚拟机的数据发送方法、接收方法及系统 | |
CN111249744B (zh) | 资源加载方法和装置、存储介质及电子装置 | |
CN106547580B (zh) | 挂钩函数的方法、装置、移动终端及存储介质 | |
CN105487987B (zh) | 一种处理并发顺序读io的方法及装置 | |
CN111262753B (zh) | 一种numa节点个数自动配置方法方法、系统、终端及存储介质 | |
CN108829529A (zh) | 虚拟机内存共享方法、装置、计算机设备及存储介质 | |
CN109656572A (zh) | 安装包的打包方法及装置、计算机设备、存储介质 | |
CN109885744A (zh) | 网页数据爬取方法、装置、系统、计算机设备及存储介质 | |
CN104579765A (zh) | 一种集群系统的容灾方法和装置 | |
CN113157274B (zh) | 基于微前端的软件开发方法、装置、电子设备及存储介质 | |
CN110399231A (zh) | 基于跨平台的数据处理方法、装置及计算机设备 | |
CN105119944B (zh) | 一种应用的启动方法和相关装置 | |
CN104965786B (zh) | 一种应用程序的调试方法、调试主机及运行主机 | |
CN108959313B (zh) | 面向海量小文件的并发处理方法、装置和存储介质 | |
CN111913764A (zh) | 服务依赖分析方法、电子设备及存储介质 | |
CN106445546B (zh) | 一种事件系统的创建方法及装置 | |
CN103942149B (zh) | 用户态程序与内核交互报文的方法及系统 | |
CN104205730B (zh) | 网元数据访问方法、虚拟网元、网络管理服务器及网络管理系统 | |
CN109857553A (zh) | 内存管理方法及装置 | |
CN111930363B (zh) | 区块接口代码生成方法、及装置 | |
JP6418419B2 (ja) | ハードディスクがアプリケーションコードを実行するための方法および装置 | |
CN106202456B (zh) | 发送图片的方法及装置 | |
CN111324395A (zh) | 调用方法、装置和计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |