CN109426496A - 程序日志写入文件的方法、存储介质、电子设备及系统 - Google Patents
程序日志写入文件的方法、存储介质、电子设备及系统 Download PDFInfo
- Publication number
- CN109426496A CN109426496A CN201710774350.7A CN201710774350A CN109426496A CN 109426496 A CN109426496 A CN 109426496A CN 201710774350 A CN201710774350 A CN 201710774350A CN 109426496 A CN109426496 A CN 109426496A
- Authority
- CN
- China
- Prior art keywords
- function
- file
- nslog
- mach
- program
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及信息处理领域,公开了一种程序日志写入文件的方法、存储介质、电子设备及系统,该方法包括S1:获取程序中所有Mach‑o文件及每个Mach‑o文件所对应的内存起始地址,及Mach‑o文件在内存中的虚拟内存地址;S2:解析Mach‑o文件,得到每个Mach‑o文件内每个函数的名称和指针,遍历每个函数的名称,找到每个Mach‑o文件内的NSlog函数;S3:编写一hook函数,所述hook函数用于获取NSlog函数的调用堆栈信息;S4:创建一空白文件,当程序内的NSlog函数被调用时,通过编写的hook函数获取NSlog函数的调用堆栈信息,并根据获取的调用堆栈信息得到NSlog函数打印的日志,同时将得到的日志写入创建的空白文件中保存。本发明能够完成日志的自动获取和保存。
Description
技术领域
本发明涉及信息处理领域,具体涉及一种程序日志写入文件的方法、存储介质、电子设备及系统。
背景技术
当前,随着移动设备的日益普及,移动应用产业尤其是iOS应用程序也随之得到飞速发展,且iOS应用程序的开发模式和代码框架也随之发生了巨大变化。
通常,在开发iOS平台的程序时,会对程序中的关键位置打印日志在控制台显示,以便于进行调试和定位程序可能出现的问题,而在iOS平台,打印日志则是通过NSLog函数来实现,NSlog函数是cocoa框架中提供的一个方法,NSlog函数能够输出字符串到控制台,cocoa框架由苹果公司开发,类似于C语言的函数库。但是,当程序开发完成后,程序代码中有许多地方需要进行打印日志的操作,为了更加方便对打印出的日志进行定位和保持,一般会将日志放置于一文件中进行保存,但此时就必须对程序中所有打印日志的代码进行适配性修改,极大地降低了程序的开发效率。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种程序日志写入文件的方法,能够完成日志的自动获取和保存。
为达到以上目的,本发明采取的技术方案是,包括:
S1:获取程序中所有Mach-o文件及每个Mach-o文件所对应的内存起始地址,并根据内存起始地址获取Mach-o文件在内存中的虚拟内存地址;
S2:根据Mach-o文件在内存中的虚拟内存地址,解析Mach-o文件,得到每个Mach-o文件内每个函数的名称和指针,遍历每个函数的名称,找到每个Mach-o文件内的NSlog函数;
S3:编写一hook函数,所述hook函数用于获取NSlog函数的调用堆栈信息;
S4:创建一空白文件,当程序内的NSlog函数被调用时,通过编写的hook函数获取NSlog函数的调用堆栈信息,并根据获取的调用堆栈信息得到NSlog函数打印的日志,同时将得到的日志写入创建的空白文件中保存。
在上述技术方案的基础上,
所述hook函数用于将目标函数的内存地址进行替换成设定地址;
当目标函数执行时,跳转至设定地址以进行调用堆栈信息的获取;
所述目标函数为NSlog函数。
在上述技术方案的基础上,S4中,对于NSlog函数的调用堆栈信息的获取,具体为:
S401:根据Mach-o文件的虚拟内存地址和指针,获取Mach-o文件中NSlog函数的内存地址;
S402:将NSlog函数的内存地址替换成设定地址,同时保存NSlog函数的内存地址;
S403:NSlog函数跳转至设定地址,进行NSlog函数的调用堆栈信息的获取。
在上述技术方案的基础上,通过iOS系统的API函数fopen将日志写入空白文件中。
在上述技术方案的基础上,对于保存至空白文件中的日志,通过NSlog函数将日志在程序调试用控制台进行显示。
本发明还提供一种存储介质,该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述项所述的方法。
本发明还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述所述的方法。
本发明还提供一种程序日志写入文件的系统,包括:
获取模块,其用于获取程序中的所有Mach-o文件及每个Mach-o文件所对应的内存起始地址,并根据内存起始地址获取Mach-o文件在内存中的虚拟内存地址;
解析模块,其用于根据Mach-o文件在内存中的虚拟内存地址,同时解析Mach-o文件,得到每个Mach-o文件内每个函数的名称和指针,遍历每个函数的名称,找到每个Mach-o文件内的NSlog函数,同时编写一hook函数,所述hook函数用于获取NSlog函数的调用堆栈信息;
执行模块,其用于创建一空白文件,当程序内的NSlog函数被调用时,通过编写的hook函数获取NSlog函数的调用堆栈信息,并根据获取的调用堆栈信息得到NSlog函数打印的日志,同时将得到的日志写入创建的空白文件中保存。
在上述技术方案的基础上,所述hook函数用于将目标函数的内存地址进行替换成设定地址;当目标函数执行时,跳转至设定地址以进行调用堆栈信息的获取;所述目标函数为NSlog函数。
在上述技术方案的基础上,通过iOS系统的API函数fopen将日志写入空白文件中。
与现有技术相比,本发明的优点在于:根据程序中进行打印日志时必须调用NSlog函数来实现的特性,获取程序中的所有Mach-o文件及每个Mach-o文件中的NSlog函数,编写一hook函数,当程序中的NSlog函数被调用而进行打印日志操作时,通过hook函数将NSlog函数跳转至设定地址,进而获取NSlog函数的调用堆栈信息,进而得到NSlog函数打印的日志,最后将日志保存于文件中,方便日后的查看以及对程序的调试,整个过程自动完成,且无需对程序相应代码进行修改,极大地提高了程序的开发效率。
附图说明
图1为本发明实施例中一种程序日志写入文件的方法的流程图;
图2为本发明实施例中一种电子设备的结构示意图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
参见图1所示,本发明实施例提供一种程序日志写入文件的方法,用于将程序中打印日志时打印的日志写入到文件中进行保存,方便后续对日志的查看及对程序的调试。在iOS系统中,通过一个API(Application Programming Interface,应用程序编程接口)函数NSlog函数在控制台进行打印日志的功能。对于NSlog函数,其原型如下:
oid NSLog(NSString*format,…);
其中,参数NSString*format标示打印的字符串,其中也可以加入格式的操作,参数…则可以用来输入多个参数。
本发明实施例的程序日志写入文件的方法具体包括:
S1:获取程序中所有Mach-o文件及每个Mach-o文件所对应的内存起始地址,并根据内存起始地址获取Mach-o文件在内存中的虚拟内存地址。
NSlog函数位于Mach-o文件中,Mach-o是iOS系统中可执行文件的格式,对于Mach-o文件的结构,具体包括header structure(头部)、load command(加载命令)和segment(段),一个Mach-o文件可以拥有多个段,每个段可以拥有零个或多个区域(section),每一个段都拥有一段虚拟地址映射到进程的地址空间,同时,一个完整的Mach-o文件的末端是链接信息,其中包含了动态加载器用来链接可执行文件或者依赖库所需使用的符号表、字符串等等。NSlog函数位于Mach-o文件,且一个iOS程序包括多个Mach-o文件,因此为保证日志获取的准确性,我们需要获取程序中所有的Mach-o文件,以便于进行后续的操作。
对于系统中Mach-o文件的获取,首先可以通过系统函数获取到系统中Mach-o文件的个数以及Mach-o文件的内存起始地址,具体实现为:uint32_t c=_dyld_image_count();
通过_dyld_image_count来获取iOS系统中所加载的Mach-o文件的个数,然后执行
for(uint32_t i=0;i<c;i++)
即通过for循环来遍历Mach-o文件,接着
onst struct mach_header*header=_dyld_get_image_header(i)
即通过函数_dyld_get_image_header来获取Mach-o文件的内存起始地址,接着
intptr_t slide=_dyld_get_image_vmaddr_slide(i);
即通过函数_dyld_get_image_vmaddr_slide来获取Mach-o文件在内存中的虚拟内存地址。
S2:根据Mach-o文件在内存中的虚拟内存地址,解析Mach-o文件,得到每个Mach-o文件内每个函数的名称和指针,遍历每个函数的名称,找到每个Mach-o文件内的NSlog函数。本步骤是为了找出Mach-o文件中的目标函数,目标函数即为NSlog函数。具体的:
对Mach-o文件进行解析,在load command(加载命令)内找到linkedit_segment、symtab_cmd、dysymtab_cmd,通过linkedit_segment则可以找到symtab_cmd中的symtab和strtab,其中,strtab内存储着Mach-o文件内每个函数的名称,strtab内存储着Mach-o文件内每个函数的索引,而Mach-o文件内每个函数的函数指针着存储在section中,因此需要进一步地从Mach-o文件中解析出section,其过程为:在Mach-o文件中获取到对应的cmd,因为Mach-o文件的解析是开源的,故可以按照开源的代码来解析需要查找的inkedit_segment、symtab_cmd、dysymtab_cmd等cmd地址,故遍历Mach-o文件的Load command来查找,最终可以查找到section、symtab、strtab、indirect_symtab。得到每个Mach-o文件内每个函数的名称和指针后,便可遍历每个函数的名称,找到每个Mach-o文件内的NSlog函数。
S3:编写一hook(钩子)函数,所述hook函数用于获取NSlog函数的调用堆栈信息;所述hook函数用于将目标函数的内存地址进行替换成设定地址;当目标函数执行时,跳转至设定地址以进行调用堆栈信息的获取;目标函数为NSlog函数。其中,设定地址即为人为编写的函数地址,用于NSlog函数跳转后执行,进而进行调用堆栈信息的获取。
本发明实施例中,hook函数的原型如下:
HOOK_Function(char*pFuncName,void*pNew,void**pSaveOrg);
其中,HOOK_Function为hook函数的名称;
参数char*pFuncName标示需要hook的函数名称,这里需要hook的函数名称为NSlog;
参数void*pNew标示替换的函数的内存地址;
参数void**pSaveOrg标示存储系统原本的函数的内存地址。
S4:创建一空白文件,当程序内的NSlog函数被调用时,通过编写的hook函数获取NSlog函数的调用堆栈信息,并根据获取的调用堆栈信息得到NSlog函数打印的日志,同时将得到的日志写入创建的空白文件中保存。
对于NSlog函数的调用堆栈信息的获取,具体为:
S401:根据Mach-o文件的虚拟内存地址和指针,获取Mach-o文件中NSlog函数的内存地址;
S402:将NSlog函数的内存地址替换成设定地址,同时保存NSlog函数的内存地址;现函数为pSaveOrg=setion_indirect_symbol_bindings[i]。
S403:NSlog函数跳转至设定地址,进行NSlog函数的调用堆栈信息的获取。
即每当有NSlog函数进行文件内容的读取操作时,则采用hook的方式,替换NSlog函数原本的内存地址,使NSlog函数跳转到我们自己设定的内存地址中,同时定义一个函数指针static void(*orig_NSLog)(NSString*format,…),用来存储NSlog函数原先的内存地址,因此整个NSlog函数被调用时便会跳转至设定地址,执行我们相关调用堆栈信息的函数,进而方便调用堆栈信息的获取,并根据获取的调用堆栈信息得到NSlog函数打印的日志。
通过iOS系统的API函数fopen将日志写入空白文件中,fopen函数用于打开文件,以便于文件内容的写入。具体的:
FILE*fp=fopen("log.txt","a");即首先使用fopen来打开空白文件,然后调用函数fwrite将日志写入到空白文件中,对应代码为:
Char buff[MAX_BUFF]={0};
Sprintf(buff,format,…);
Fwrite(buff,1,strlen(buff),fp);
即通过定义一个缓存buff,然后将buff数据写入到空白文件中,将format数据希尔到文件中,对应为Fclose(fp),完成日志写入空白文件的操作,最后关闭空白文件。
对于保存至空白文件中的日志,通过NSlog函数将日志在程序调试用控制台进行显示,即需要查看空白文件中的日志时,通过NSlog函数即可将日志在程序调试用控制台进行显示,对应代码为orig_NSLog(format,…)。
本发明的程序日志写入文件的方法的原理在于,根据程序中进行打印日志时必须调用NSlog函数来实现的特性,获取程序中的所有Mach-o文件及每个Mach-o文件中的NSlog函数,编写一hook函数,当程序中的NSlog函数被调用而进行打印日志操作时,通过hook函数将NSlog函数跳转至设定地址,进而获取NSlog函数的调用堆栈信息,并根据调用堆栈信息得到NSlog函数打印的日志,最后将日志保存于文件中,方便日后的查看以及对程序的调试,整个过程自动完成,且无需对程序相应代码进行修改,极大地提高了程序的开发效率。
另外,对应上述程序日志写入文件的方法,本发明还提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述各实施例所述的程序日志写入文件的方法的步骤。需要说明的是,所述存储介质包括U盘、移动硬盘、ROM(Read-OnlyMemory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、磁碟或者光盘等各种可以存储程序代码的介质。
参见图2所示,对应上述程序日志写入文件的方法,本发明还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,处理器执行计算机程序时实现上述各实施例的程序日志写入文件的方法。
本发明实施例还提供一种基于上述程序日志写入文件的方法的程序日志写入文件的系统,包括获取模块、解析模块和执行模块。
获取模块用于获取程序中的所有Mach-o文件及每个Mach-o文件所对应的内存起始地址,并根据内存起始地址获取Mach-o文件在内存中的虚拟内存地址;解析模块用于根据Mach-o文件在内存中的虚拟内存地址,同时解析Mach-o文件,得到每个Mach-o文件内每个函数的名称和指针,遍历每个函数的名称,找到每个Mach-o文件内的NSlog函数,同时编写一hook函数,所述hook函数用于获取NSlog函数的调用堆栈信息;执行模块用于创建一空白文件,当程序内的NSlog函数被调用时,通过编写的hook函数获取NSlog函数的调用堆栈信息,并根据获取的调用堆栈信息得到NSlog函数打印的日志,同时将得到的日志写入创建的空白文件中保存。
本发明实施例的程序日志写入文件的系统的原理在于,根据程序中进行打印日志时必须调用NSlog函数来实现的特性,通过获取模块获取程序中的所有Mach-o文件及每个Mach-o文件中的NSlog函数,同时解析模块编写一hook函数,当程序中的NSlog函数被调用而进行打印日志操作时,通过hook函数将NSlog函数跳转至设定地址,进而获取NSlog函数的调用堆栈信息,并根据调用堆栈信息得到NSlog函数打印的日志,最后将日志保存于文件中,方便日后的查看以及对程序的调试,整个过程自动完成,且无需对程序相应代码进行修改,极大地提高了程序的开发效率。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (10)
1.一种程序日志写入文件的方法,其特征在于,包括:
S1:获取程序中所有Mach-o文件及每个Mach-o文件所对应的内存起始地址,并根据内存起始地址获取Mach-o文件在内存中的虚拟内存地址;
S2:根据Mach-o文件在内存中的虚拟内存地址,解析Mach-o文件,得到每个Mach-o文件内每个函数的名称和指针,遍历每个函数的名称,找到每个Mach-o文件内的NSlog函数;
S3:编写一hook函数,所述hook函数用于获取NSlog函数的调用堆栈信息;
S4:创建一空白文件,当程序内的NSlog函数被调用时,通过编写的hook函数获取NSlog函数的调用堆栈信息,并根据获取的调用堆栈信息得到NSlog函数打印的日志,同时将得到的日志写入创建的空白文件中保存。
2.如权利要求1所述的一种程序日志写入文件的方法,其特征在于:
所述hook函数用于将目标函数的内存地址进行替换成设定地址;
当目标函数执行时,跳转至设定地址以进行调用堆栈信息的获取;
所述目标函数为NSlog函数。
3.如权利要求2所述的一种程序日志写入文件的方法,其特征在于:S4中,对于NSlog函数的调用堆栈信息的获取,具体为:
S401:根据Mach-o文件的虚拟内存地址和指针,获取Mach-o文件中NSlog函数的内存地址;
S402:将NSlog函数的内存地址替换成设定地址,同时保存NSlog函数的内存地址;
S403:NSlog函数跳转至设定地址,进行NSlog函数的调用堆栈信息的获取。
4.如权利要求1所述的一种程序日志写入文件的方法,其特征在于:通过iOS系统的API函数fopen将日志写入空白文件中。
5.如权利要求4所述的一种程序日志写入文件的方法,其特征在于:对于保存至空白文件中的日志,通过NSlog函数将日志在程序调试用控制台进行显示。
6.一种存储介质,该存储介质上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至5任一项所述的方法。
7.一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现权利要求1至5任一项所述的方法。
8.一种程序日志写入文件的系统,其特征在于,包括:
获取模块,其用于获取程序中的所有Mach-o文件及每个Mach-o文件所对应的内存起始地址,并根据内存起始地址获取Mach-o文件在内存中的虚拟内存地址;
解析模块,其用于根据Mach-o文件在内存中的虚拟内存地址,同时解析Mach-o文件,得到每个Mach-o文件内每个函数的名称和指针,遍历每个函数的名称,找到每个Mach-o文件内的NSlog函数,同时编写一hook函数,所述hook函数用于获取NSlog函数的调用堆栈信息;
执行模块,其用于创建一空白文件,当程序内的NSlog函数被调用时,通过编写的hook函数获取NSlog函数的调用堆栈信息,并根据获取的调用堆栈信息得到NSlog函数打印的日志,同时将得到的日志写入创建的空白文件中保存。
9.如权利要求8所述的一种程序日志写入文件的系统,其特征在于:所述hook函数用于将目标函数的内存地址进行替换成设定地址;当目标函数执行时,跳转至设定地址以进行调用堆栈信息的获取;所述目标函数为NSlog函数。
10.如权利要求8所述的一种程序日志写入文件的系统,其特征在于:通过iOS系统的API函数fopen将日志写入空白文件中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710774350.7A CN109426496B (zh) | 2017-08-31 | 2017-08-31 | 程序日志写入文件的方法、存储介质、电子设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710774350.7A CN109426496B (zh) | 2017-08-31 | 2017-08-31 | 程序日志写入文件的方法、存储介质、电子设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109426496A true CN109426496A (zh) | 2019-03-05 |
CN109426496B CN109426496B (zh) | 2021-11-26 |
Family
ID=65505658
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710774350.7A Active CN109426496B (zh) | 2017-08-31 | 2017-08-31 | 程序日志写入文件的方法、存储介质、电子设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109426496B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110417931A (zh) * | 2019-07-05 | 2019-11-05 | 腾讯科技(深圳)有限公司 | 域名解析记录获取方法、装置、计算机设备及存储介质 |
CN110515814A (zh) * | 2019-08-16 | 2019-11-29 | 海南车智易通信息技术有限公司 | iOS客户端的全量日志收集方法、装置和移动终端 |
CN111723016A (zh) * | 2020-06-24 | 2020-09-29 | 湖南国科微电子股份有限公司 | 文件关闭方法、装置、电子设备和存储介质 |
WO2021218172A1 (zh) * | 2020-04-30 | 2021-11-04 | 平安科技(深圳)有限公司 | 共享库文件模拟方法、装置、计算机设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130332829A1 (en) * | 2011-01-22 | 2013-12-12 | Filippo Costanzo | Dynamic 2d and 3d gestural interfaces for audio video players capable of uninterrupted continuity of fruition of audio video feeds |
CN105279074A (zh) * | 2014-06-05 | 2016-01-27 | 腾讯科技(深圳)有限公司 | 一种通过NSLog在终端上展示日志信息的方法和装置 |
-
2017
- 2017-08-31 CN CN201710774350.7A patent/CN109426496B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130332829A1 (en) * | 2011-01-22 | 2013-12-12 | Filippo Costanzo | Dynamic 2d and 3d gestural interfaces for audio video players capable of uninterrupted continuity of fruition of audio video feeds |
CN105279074A (zh) * | 2014-06-05 | 2016-01-27 | 腾讯科技(深圳)有限公司 | 一种通过NSLog在终端上展示日志信息的方法和装置 |
Non-Patent Citations (1)
Title |
---|
佚名等: ""深入剖析 iOS 性能优化"", 《HTTPS://WWW.SOHU.COM/A/160328943_208051》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110417931A (zh) * | 2019-07-05 | 2019-11-05 | 腾讯科技(深圳)有限公司 | 域名解析记录获取方法、装置、计算机设备及存储介质 |
CN110417931B (zh) * | 2019-07-05 | 2022-05-17 | 腾讯科技(深圳)有限公司 | 域名解析记录获取方法、装置、计算机设备及存储介质 |
CN110515814A (zh) * | 2019-08-16 | 2019-11-29 | 海南车智易通信息技术有限公司 | iOS客户端的全量日志收集方法、装置和移动终端 |
CN110515814B (zh) * | 2019-08-16 | 2023-09-19 | 海南车智易通信息技术有限公司 | iOS客户端的全量日志收集方法、装置和移动终端 |
WO2021218172A1 (zh) * | 2020-04-30 | 2021-11-04 | 平安科技(深圳)有限公司 | 共享库文件模拟方法、装置、计算机设备及存储介质 |
CN111723016A (zh) * | 2020-06-24 | 2020-09-29 | 湖南国科微电子股份有限公司 | 文件关闭方法、装置、电子设备和存储介质 |
CN111723016B (zh) * | 2020-06-24 | 2024-06-04 | 湖南国科微电子股份有限公司 | 文件关闭方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109426496B (zh) | 2021-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109426496A (zh) | 程序日志写入文件的方法、存储介质、电子设备及系统 | |
CN104391787B (zh) | 一种针对目标方法的监控、热切入方法及装置 | |
CN106776584A (zh) | 文字显示方法、翻译表生成方法、文件翻译方法及装置 | |
CN105224309B (zh) | 一种调取函数的方法和装置 | |
CN110515641A (zh) | 服务器固件的更新方法、装置及系统 | |
CN109471634A (zh) | 源代码格式的检查方法及设备 | |
CN102959538B (zh) | 给文档编索引 | |
US10853224B2 (en) | Indexing and searching a time-travel trace for arbitrary length/arbitrary alignment values | |
CN107544811A (zh) | IOS平台隐藏dylib文件的方法、存储介质、电子设备及系统 | |
JP4890869B2 (ja) | 同じアイテムを表すデータ構造間で生データを転送するメカニズム | |
CN108280056A (zh) | 一种Excel文件解析方法 | |
CN116627429B (zh) | 一种汇编代码生成方法、装置及电子设备和存储介质 | |
CN110377516A (zh) | 测试方法、装置、电子设备及计算机可读存储介质 | |
CN112347142B (zh) | 数据处理方法及装置 | |
CN106445815A (zh) | 一种自动化测试方法及装置 | |
US20100070721A1 (en) | Buffer snapshots from unmodifiable data piece tables | |
CN110347390B (zh) | 一种快速生成web页面的方法、存储介质、设备及系统 | |
CN112363706A (zh) | 一种嵌套组合的预处理方法及设备 | |
CN110765152B (zh) | Sql提取方法、装置、计算机设备和存储介质 | |
CN116028022A (zh) | 一种基于Java技术的零代码Excel数据导入方法、装置及介质 | |
US9619445B1 (en) | Conversion of content to formats suitable for digital distributions thereof | |
CN107688456A (zh) | 文件生成方法、设备以及计算机可读存储介质 | |
US8131728B2 (en) | Processing large sized relationship-specifying markup language documents | |
CN109426702A (zh) | iOS平台文件读取保护方法、存储介质、电子设备及系统 | |
CN105843661B (zh) | 一种面向主机系统的代码重定位方法及其系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |