[go: up one dir, main page]

CN112052007A - Source code debugging method, device, server and storage medium - Google Patents

Source code debugging method, device, server and storage medium Download PDF

Info

Publication number
CN112052007A
CN112052007A CN202010930255.3A CN202010930255A CN112052007A CN 112052007 A CN112052007 A CN 112052007A CN 202010930255 A CN202010930255 A CN 202010930255A CN 112052007 A CN112052007 A CN 112052007A
Authority
CN
China
Prior art keywords
source code
file
code file
storage path
compiled
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.)
Pending
Application number
CN202010930255.3A
Other languages
Chinese (zh)
Inventor
吴贯亮
张赛
郭妙友
孙阳
董利明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202010930255.3A priority Critical patent/CN112052007A/en
Publication of CN112052007A publication Critical patent/CN112052007A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本公开关于一种源码调试方法、装置、服务器及存储介质。其中,该源码调试方法包括:获取目标工程中的目标静态库的编译文件,编译文件通过对第一源码文件进行编译得到;解析编译文件,得到第一源码文件的第一存储路径,第一存储路径为第一源码文件被编译为编译文件时的存储路径;在本地设备中创建与第一存储路径相同的第二存储路径;将第二源码文件存储到第二存储路径,第二源码文件通过解析目标静态库的配置文件得到;基于第二存储路径读取第二源码文件,以调试第二源码文件。采用本公开提供的源码调试方法、装置、服务器及存储介质,能够解决使用静态库集成时不方便阅读和调试源码的问题。

Figure 202010930255

The present disclosure relates to a source code debugging method, device, server and storage medium. The source code debugging method includes: obtaining a compiled file of a target static library in a target project, and the compiled file is obtained by compiling a first source code file; parsing the compiled file to obtain a first storage path of the first source code file, the first storage path The path is the storage path when the first source code file is compiled into a compiled file; a second storage path that is the same as the first storage path is created in the local device; the second source code file is stored in the second storage path, and the second source code file passes through Obtained by parsing the configuration file of the target static library; reading the second source code file based on the second storage path to debug the second source code file. The source code debugging method, device, server and storage medium provided by the present disclosure can solve the problem of inconvenient reading and debugging of source code when using static library integration.

Figure 202010930255

Description

源码调试方法、装置、服务器及存储介质Source code debugging method, device, server and storage medium

技术领域technical field

本公开涉及通信技术领域,尤其涉及一种信息处理方法、装置、服务器及存储介质。The present disclosure relates to the field of communication technologies, and in particular, to an information processing method, device, server, and storage medium.

背景技术Background technique

随着计算机开发项目逐步复杂化和多元化,随之带来的工程编译慢的问题也越来越明显。业界提出了很多编译优化的方案,其中静态库集成以其操作简单、编译迅速的特点受到广泛应用。With the gradual complexity and diversification of computer development projects, the problem of slow project compilation has become more and more obvious. The industry has proposed many compilation and optimization schemes, among which static library integration is widely used due to its simple operation and rapid compilation.

然而,静态库是一种编译文件,程序调试时开发者只能看到汇编形式的计算机代码指令,程序调试是通过对源码进行编译以便查找错误及错位发生的位置的过程,而静态库是不支持源码调试的,这给开发人员的调试工作带来非常多的不便。However, a static library is a compiled file. When debugging a program, developers can only see computer code instructions in the form of assembly. Program debugging is a process of compiling the source code to find the location of errors and dislocations, while static libraries are not It supports source code debugging, which brings a lot of inconvenience to the debugging work of developers.

目前,在相关的技术中,开发者为了方便阅读源码和调试,宁可采用编译速度较慢的源码集成方案,也不选择使用可以大幅提升编译速度的静态库集成方案,使得静态库集成没有发挥应有的作用。At present, among related technologies, in order to facilitate the reading of source code and debugging, developers would rather use a source code integration solution with a slower compilation speed than a static library integration solution that can greatly improve the compilation speed, so that the static library integration does not play its role. some effect.

发明内容SUMMARY OF THE INVENTION

本公开提供一种源码调试方法、装置、服务器及存储介质,以至少解决相关技术中在使用静态库集成时由于不方便阅读并调试源码导致的浪费开发人员时间,影响开发效率的问题。The present disclosure provides a source code debugging method, device, server and storage medium to at least solve the problem of wasting developers' time and affecting development efficiency due to inconvenience in reading and debugging source code when using static library integration in the related art.

本公开的技术方案如下:The technical solutions of the present disclosure are as follows:

根据本公开实施例的第一方面,提供一种源码调试方法,包括:在目标工程的调试过程中,获取目标工程中的目标静态库的编译文件,编译文件通过对第一源码文件进行编译得到;解析编译文件,得到第一源码文件的第一存储路径,第一存储路径为第一源码文件被编译为编译文件时的存储路径;在本地设备中创建与第一存储路径相同的第二存储路径;将第二源码文件存储到第二存储路径,第二源码文件通过解析目标静态库的配置文件得到,第二源码文件与第一源码文件的内容相同;基于第二存储路径读取第二源码文件,以调试第二源码文件。According to a first aspect of the embodiments of the present disclosure, there is provided a source code debugging method, comprising: in the debugging process of a target project, obtaining a compilation file of a target static library in the target project, and the compiled file is obtained by compiling a first source code file ; Analyze the compiled file to obtain the first storage path of the first source code file, and the first storage path is the storage path when the first source code file is compiled into a compiled file; Create a second storage path identical to the first storage path in the local device path; store the second source code file in the second storage path, the second source code file is obtained by parsing the configuration file of the target static library, and the content of the second source code file is the same as that of the first source code file; read the second source code file based on the second storage path source file to debug the second source file.

根据本公开实施例的第二方面,提供一种源码调试装置,包括:获取模块,被配置为执行在目标工程的调试过程中,获取目标工程中的目标静态库的编译文件,编译文件通过对第一源码文件进行编译得到;解析模块,被配置为执行解析编译文件,得到第一源码文件的第一存储路径,第一存储路径为第一源码文件被编译为编译文件时的存储路径;创建模块,被配置为执行在本地设备中创建与第一存储路径相同的第二存储路径;存储模块,被配置为执行将第二源码文件存储到第二存储路径,第二源码文件通过解析目标静态库的配置文件得到,第二源码文件与第一源码文件的内容相同;读取模块,被配置为执行基于第二存储路径读取第二源码文件,以调试第二源码文件。According to a second aspect of the embodiments of the present disclosure, a source code debugging device is provided, including: an obtaining module configured to execute a debugging process of a target project to obtain a compiled file of a target static library in the target project, and the compiled file The first source code file is obtained by compiling; the parsing module is configured to execute parsing and compiling the file to obtain a first storage path of the first source code file, and the first storage path is the storage path when the first source code file is compiled into a compiled file; creating The module is configured to execute the creation of a second storage path that is the same as the first storage path in the local device; the storage module is configured to execute the second source code file to be stored in the second storage path, and the second source code file is statically generated by parsing the target The configuration file of the library is obtained, and the content of the second source code file is the same as that of the first source code file; the reading module is configured to read the second source code file based on the second storage path, so as to debug the second source code file.

根据本公开实施例的第三方面,提供一种服务器,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令,以实现如第一方面所述的源码调试方法。According to a third aspect of the embodiments of the present disclosure, there is provided a server, comprising: a processor; a memory for storing instructions executable by the processor; wherein the processor is configured to execute the instructions to implement the first aspect Source code debugging method.

根据本公开实施例的第四方面,提供一种存储介质,当存储介质中的指令由服务器的处理器执行时,使得服务器能够执行如第一方面所述的源码调试方法。According to a fourth aspect of the embodiments of the present disclosure, a storage medium is provided, when an instruction in the storage medium is executed by a processor of a server, the server can execute the source code debugging method described in the first aspect.

根据本公开实施例的第五方面,提供一种计算机程序产品,当计算机程序产品中的指令由服务器的处理器执行时,使得服务器能够执行如第一方面所述的源码调试方法。According to a fifth aspect of the embodiments of the present disclosure, there is provided a computer program product, which enables the server to execute the source code debugging method according to the first aspect when the instructions in the computer program product are executed by the processor of the server.

本公开的实施例提供的技术方案至少带来以下有益效果:The technical solutions provided by the embodiments of the present disclosure bring at least the following beneficial effects:

在本公开实施例中,通过对目标静态库的编译文件进行解析,确定第一源码文件在被编译时的第一存储路径,并在本地创建与第一存储路径相同的第二存储路径,然后将基于目标静态库的配置文件确定的第二源码文件存储于第二存储路径,这样,在调试时就可以自动读取到存储于第二存储路径下的第二源码文件,能够将只有机器才能识别的编译文件直接转换为调试人员可读且支持源码调试的第二源码文件,由此,能够方便调试人员对第二源码文件进行调试,节约了调试人员的工作时间,提升开发效率。In the embodiment of the present disclosure, by analyzing the compiled file of the target static library, the first storage path of the first source code file when compiled is determined, and the second storage path that is the same as the first storage path is created locally, and then The second source code file determined based on the configuration file of the target static library is stored in the second storage path, so that the second source code file stored in the second storage path can be automatically read during debugging, so that only the machine can The identified compiled file is directly converted into a second source code file that is readable by the debugger and supports source code debugging, thereby facilitating the debugger to debug the second source code file, saving the work time of the debugger and improving the development efficiency.

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。It is to be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the present disclosure.

附图说明Description of drawings

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。The accompanying drawings, which are incorporated into and constitute a part of this specification, illustrate embodiments consistent with the present disclosure, and together with the description, serve to explain the principles of the present disclosure and do not unduly limit the present disclosure.

图1是根据一示例性实施例示出的一种静态库集成示意图。Fig. 1 is a schematic diagram showing a static library integration according to an exemplary embodiment.

图2是根据一示例性实施例示出的源码调试方法、装置、电子设备及存储介质应用环境示意图。FIG. 2 is a schematic diagram of an application environment of a source code debugging method, apparatus, electronic device, and storage medium according to an exemplary embodiment.

图3是根据一示例性实施例示出的一种源码调试方法的流程图。Fig. 3 is a flowchart of a source code debugging method according to an exemplary embodiment.

图4是根据一示例性实施例示出的另一种源码调试方法的流程图。Fig. 4 is a flowchart of another source code debugging method according to an exemplary embodiment.

图5是根据一示例性实施例示出的一种源码调试装置的框图。Fig. 5 is a block diagram of a source code debugging apparatus according to an exemplary embodiment.

图6是根据一示例性实施例示出的一种服务器的框图。Fig. 6 is a block diagram of a server according to an exemplary embodiment.

图7是根据一示例性实施例示出的用于数据处理的设备的框图。FIG. 7 is a block diagram of an apparatus for data processing according to an exemplary embodiment.

具体实施方式Detailed ways

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。In order to make those skilled in the art better understand the technical solutions of the present disclosure, the technical solutions in the embodiments of the present disclosure will be clearly and completely described below with reference to the accompanying drawings.

需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。It should be noted that the terms "first", "second" and the like in the description and claims of the present disclosure and the above drawings are used to distinguish similar objects, and are not necessarily used to describe a specific sequence or sequence. It is to be understood that the data so used may be interchanged under appropriate circumstances such that the embodiments of the disclosure described herein can be practiced in sequences other than those illustrated or described herein. The implementations described in the illustrative examples below are not intended to represent all implementations consistent with this disclosure. Rather, they are merely examples of apparatus and methods consistent with some aspects of the present disclosure as recited in the appended claims.

随着计算机开发项目(如超级应用程序(Application,APP))逐步复杂化和多元化,随之带来的工程编译慢问题也越来越明显。With the gradual complication and diversification of computer development projects (such as super application programs (Application, APP)), the accompanying slow project compilation problem becomes more and more obvious.

超级APP,是指那些拥有庞大的用户数,成为用户手机上的“装机必备”的基础应用。超级APP可以实现人们对很多APP的功能的需求,安装了一个超级APP,就无需在一台电子设备安装过多APP,就可以满足人们的日常所需。超级APP因其多元化的特点,逐渐成为一种流行趋势,但因其功能复杂,随之带来的工程编译慢问题也越来越明显。Super APP refers to those basic applications that have a huge number of users and become "must have" on the user's mobile phone. Super APP can fulfill people's needs for the functions of many APPs. Once a super APP is installed, there is no need to install too many APPs on one electronic device, and it can meet people's daily needs. Super APP has gradually become a popular trend because of its diversified characteristics, but because of its complex functions, the problem of slow project compilation has become more and more obvious.

由于超级APP功能多样,实现复杂,对APP进行源码编译通常耗时在40分钟-1个小时不等,严重影响开发效率,为了解决上述源码编译慢的问题,静态库编译技术应运而生,静态库编译技术允许开发者通过集成已经编译好的编译文件,进行对工程的编译、打包工作,大幅提高工程的编译速度,实践证明确实有效。Due to the diverse functions and complex implementation of super APPs, it usually takes 40 minutes to 1 hour to compile the source code of the APP, which seriously affects the development efficiency. In order to solve the above problem of slow source code compilation, the static library compilation technology came into being. The library compilation technology allows developers to compile and package the project by integrating the compiled files, which greatly improves the compilation speed of the project. Practice has proved that it is indeed effective.

其中,编译文件是指将开发者编写的源文件进行编译、连接并生成可执行文件,例如:二进制文件。The compilation file refers to compiling and linking the source file written by the developer to generate an executable file, such as a binary file.

需要说明的是,本公开不单应用于超级APP,也可以应用于任何使用静态库集成的程序、软件和计算机工程等。It should be noted that the present disclosure is not only applicable to super APPs, but can also be applied to any programs, software, and computer engineering that are integrated using static libraries.

下面,以图1为例说明相关技术中静态库集成的具体实现方式。Hereinafter, a specific implementation manner of static library integration in the related art will be described by taking FIG. 1 as an example.

图1是根据一示例性实施例示出的一种静态库集成示意图。如图1所示,源码110经过预编译,得到静态库120,然后通过集成多个静态库来帮助实现对工程130的开发。其中,预编译是从源码(通常为高级语言)到能直接被计算机或虚拟机执行的目标代码(即汇编指令)的翻译过程。目前,静态库编译技术将目标源码库提前编译成编译文件,在工程集成时直接使用编译好的二级制文件,进而为开发者节省这部分源码编译的时间,从而实现工程的编译优化,逐渐成为编译优化的主流。这里,工程集成时直接使用编译好的二级制文件的方案即为静态库集成方案。Fig. 1 is a schematic diagram showing a static library integration according to an exemplary embodiment. As shown in FIG. 1 , the source code 110 is precompiled to obtain a static library 120 , and then the development of the project 130 is facilitated by integrating multiple static libraries. Among them, pre-compilation is a translation process from source code (usually a high-level language) to object code (ie, assembly instructions) that can be directly executed by a computer or a virtual machine. At present, the static library compilation technology compiles the target source code library into compiled files in advance, and directly uses the compiled secondary files during project integration, thereby saving the time for developers to compile this part of the source code, so as to realize the compilation optimization of the project, gradually Become the mainstream of compilation optimization. Here, the solution of directly using the compiled secondary files during project integration is the static library integration solution.

然而,静态库是一种编译文件,编译期加载之后,调试时开发者只能看到汇编形式的计算机代码指令,给开发人员的源码阅读和调试工作都带来非常多的不便。However, a static library is a kind of compiled file. After being loaded at compile time, developers can only see computer code instructions in assembly form during debugging, which brings a lot of inconvenience to developers in source code reading and debugging.

由于上述说明的开发者无法查看静态库对应的源码和对源码进行调试工作的困境,导致大部分开发者依然采用源码集成的形式。开发者为了方便阅读源码和调试,宁可接受极慢的编译时间,也要放弃可以大幅提升编译速度的静态库集成方案,使得静态库集成方案无法发挥应有的作用。Due to the dilemma that the above-mentioned developers cannot view the source code corresponding to the static library and debug the source code, most developers still use the form of source code integration. In order to facilitate reading the source code and debugging, developers would rather accept extremely slow compilation time, but also give up the static library integration solution that can greatly improve the compilation speed, making the static library integration solution unable to play its due role.

为了解决上述相关技术中存在的在使用静态库集成时不方便阅读源码,使得静态库集成没有发挥应有的作用的问题。In order to solve the problem in the above-mentioned related technologies that it is inconvenient to read the source code when using the static library integration, so that the static library integration does not play its due role.

本公开提供了一种源码调试方法、装置、电子设备及存储介质。该源码调试方法、装置、电子设备及存储介质可通过对目标静态库的编译文件进行解析,确定第一源码文件在被编译时的第一存储路径,并在本地创建与第一存储路径相同的第二存储路径,然后将基于目标静态库的配置文件确定的第二源码文件存储于第二存储路径,这样,在调试时就可以自动读取到存储于第二存储路径下的第二源码文件,以调试第二源码文件。这样,能够将只有机器才能识别的编译文件直接转换为调试人员可读的第二源码文件,以实现对第二源码文件的调试。由此,可以节约调试人员的工作时间,提升开发效率。The present disclosure provides a source code debugging method, device, electronic device and storage medium. The source code debugging method, device, electronic device and storage medium can determine the first storage path of the first source code file when it is compiled by analyzing the compiled file of the target static library, and locally create the same storage path as the first storage path. The second storage path, and then store the second source code file determined based on the configuration file of the target static library in the second storage path, so that the second source code file stored in the second storage path can be automatically read during debugging , to debug the second source file. In this way, the compiled file that can only be recognized by the machine can be directly converted into the second source code file readable by the debugger, so as to realize the debugging of the second source code file. In this way, the working time of the debugging personnel can be saved, and the development efficiency can be improved.

如图2所示,是本公开说明书一个或多个实施例提供的源码调试方法、装置、电子设备及存储介质的应用环境示意图。如图2所示,服务器100通过网络300与一个或多个用户端200通信连接,以进行数据通信或交互。所述服务器100以是网络服务器、数据库服务器等。所述用户端200可以是,但不限于个人电脑(personal computer,PC)、智能手机、平板电脑、个人数字助理(personal digital assistant,PDA)等。所述网络300可以是有线或无线网络。As shown in FIG. 2 , it is a schematic diagram of an application environment of the source code debugging method, apparatus, electronic device and storage medium provided by one or more embodiments of the present disclosure. As shown in FIG. 2 , the server 100 is communicatively connected with one or more clients 200 through the network 300 for data communication or interaction. The server 100 may be a web server, a database server, or the like. The client 200 may be, but is not limited to, a personal computer (personal computer, PC), a smart phone, a tablet computer, a personal digital assistant (PDA), and the like. The network 300 may be a wired or wireless network.

下面将对本公开实施例提供的源码调试方法进行详细说明。The source code debugging method provided by the embodiments of the present disclosure will be described in detail below.

本公开实施例提供的源码调试方法可以应用于用户端200,为了便于描述,除特别说明外,本公开实施例均以用户端200为执行主体进行说明。可以理解的是,所述的执行主体并不构成对本公开的限定。The source code debugging method provided by the embodiment of the present disclosure can be applied to the client 200. For the convenience of description, unless otherwise specified, the embodiment of the present disclosure is described by taking the client 200 as the execution body. It can be understood that the described execution body does not constitute a limitation of the present disclosure.

为了更好的理解本公开的技术方案,在对图3所表示的如何得到目标静态库对应的源码文件进行说明前,下面先介绍使用目标静态库进行集成之前的过程。In order to better understand the technical solution of the present disclosure, before describing how to obtain the source code file corresponding to the target static library shown in FIG. 3 , the following describes the process before using the target static library for integration.

为了提升编译速度,在开发工程时常常采用静态库集成的方式。接下来就先介绍一下目标静态库的来源。比如:开发者1在设备1上编写了一段源码A,这段源码A能够实现的功能可以被很多工程所使用,开发者1将源码A编译成了目标静态库,并将源码A和目标静态库发布在网络上。这里,源码A被编译为编译文件(即目标静态库)时在设备1上的存储路径为第一存储路径,这里,为了表示区分,存储在设备1中的源码A为第一源码文件,发布在网络上的源码A为第二源码文件。可以理解的是,第一源码文件和第二源码文件的内容是相同的。In order to improve the compilation speed, static library integration is often used when developing projects. Next, let's introduce the source of the target static library. For example: Developer 1 wrote a piece of source code A on device 1. The functions that this source code A can implement can be used by many projects. Developer 1 compiles source code A into a target static library, and combines source code A with the target static library. Libraries are published on the web. Here, when the source code A is compiled into a compiled file (ie, the target static library), the storage path on device 1 is the first storage path. The source code A on the network is the second source code file. It can be understood that the contents of the first source code file and the second source code file are the same.

然后,开发者2在开发目标工程时,将目标静态库集成到该目标工程中,在设备2(即本地设备)上对该目标工程进行调试的过程,由于查看编译文件无法实现对目标工程的源码调试,所以想要找到与目标静态库对应的源码1,并且想要让目标静态库的编译文件的每一行逐行转化为与之对应的源码的每一行。Then, when developer 2 develops the target project, the target static library is integrated into the target project, and the process of debugging the target project on device 2 (ie, the local device) cannot be realized due to viewing the compiled file. Source code debugging, so I want to find the source code 1 corresponding to the target static library, and I want to convert each line of the compiled file of the target static library into each line of the corresponding source code line by line.

下面,对本公开提供的源码调试方法进行说明。Next, the source code debugging method provided by the present disclosure will be described.

图3是根据一示例性实施例示出的一种源码调试方法的流程图。Fig. 3 is a flowchart of a source code debugging method according to an exemplary embodiment.

如图3所示,该源码调试方法可以包括以下步骤。As shown in FIG. 3 , the source code debugging method may include the following steps.

S310,在目标工程的调试过程中,获取目标工程中的目标静态库的编译文件,编译文件通过对第一源码文件进行编译得到。S310 , in the debugging process of the target project, obtain a compiled file of the target static library in the target project, and the compiled file is obtained by compiling the first source code file.

S320,解析编译文件,得到第一源码文件的第一存储路径,第一存储路径为第一源码文件被编译为编译文件时的存储路径。S320, parse the compiled file to obtain a first storage path of the first source code file, where the first storage path is a storage path when the first source code file is compiled into a compiled file.

S330,在本地设备中创建与第一存储路径相同的第二存储路径。S330. Create a second storage path that is the same as the first storage path in the local device.

S340,将第二源码文件存储到第二存储路径,第二源码文件通过解析目标静态库的配置文件得到,第二源码文件与第一源码文件的内容相同。S340: Store the second source code file in the second storage path, where the second source code file is obtained by parsing the configuration file of the target static library, and the content of the second source code file is the same as that of the first source code file.

S350,基于第二存储路径读取第二源码文件,以调试第二源码文件。S350: Read the second source code file based on the second storage path to debug the second source code file.

上述各步骤的具体实现方式将在下文中进行详细描述。The specific implementation of the above steps will be described in detail below.

在本公开实施例中,通过对目标静态库的编译文件进行解析,确定第一源码文件在被编译时的第一存储路径,并在本地创建与第一存储路径相同的第二存储路径,然后将基于目标静态库的配置文件确定的第二源码文件存储于第二存储路径,这样,在调试时就可以自动读取到存储于第二存储路径下的第二源码文件,以调试第二源码文件。这样,能够将只有机器才能识别的编译文件直接转换为调试人员可读的第二源码文件,以实现对第二源码文件的调试。由此,可以节约调试人员的工作时间,提升开发效率。In the embodiment of the present disclosure, by analyzing the compiled file of the target static library, the first storage path of the first source code file when compiled is determined, and the second storage path that is the same as the first storage path is created locally, and then Store the second source code file determined based on the configuration file of the target static library in the second storage path, so that the second source code file stored in the second storage path can be automatically read during debugging to debug the second source code document. In this way, the compiled file that can only be recognized by the machine can be directly converted into the second source code file readable by the debugger, so as to realize the debugging of the second source code file. In this way, the working time of the debugging personnel can be saved, and the development efficiency can be improved.

下面介绍上述各个步骤的具体实现方式。The specific implementation manner of each of the above steps is described below.

首先,介绍S310。First, the S310 is introduced.

具体地,上述涉及到的在目标工程的调试过程中,可以为对目标工程进行断点调试。Specifically, in the debugging process of the target project mentioned above, breakpoint debugging can be performed on the target project.

断点,调试器的功能之一,可以让程序中断在需要的地方,从而方便其分析。断点是一个信号,它通知调试器,在某个特定点上暂时将程序执行挂起。当执行在某个断点处挂起时,可以称程序处于中断模式。进入中断模式并不会终止或结束程序的执行。执行可以在任何时候继续。其中,调试器可以启动某些进程,然后对其进行调试,或者将自己本身关联到一个已存在的进程之上。它可以单步运行代码,设置断点然后运行程序,检查变量的值以及跟踪调用栈。Breakpoints, one of the functions of the debugger, allow the program to break where needed to facilitate its analysis. A breakpoint is a signal that notifies the debugger to temporarily suspend program execution at a specific point. A program can be said to be in break mode when execution is suspended at some breakpoint. Entering break mode does not terminate or end program execution. Execution can continue at any time. Among them, the debugger can start some process and then debug it, or attach itself to an existing process. It can step through code, set breakpoints and then run the program, inspect the values of variables, and trace the call stack.

其中,上述涉及的静态库,是指在我们的应用中,有一些公共代码是需要反复使用,就把这些代码编译为“库”文件;在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中的这种库。Among them, the static library mentioned above means that in our application, there are some common codes that need to be used repeatedly, and these codes are compiled into "library" files; in the linking step, the linker will obtain the required files from the library files. code, copy this library into the generated executable.

目标静态库的编译文件通过对第一源码文件进行编译得到。静态库在编译的时候会被直接拷贝一份,复制到目标工程里,这段代码在目标程序里就不会再改变了。The compiled file of the target static library is obtained by compiling the first source code file. When the static library is compiled, it will be copied directly to the target project, and this code will not be changed in the target program.

以iOS系统为例,iOS是由苹果公司开发的移动操作系统。它主要是给iPhone、iPodtouch以及iPad等使用。苹果开发者通过集成预先编译好的编译文件,将源码形式的目标库直接采用静态库方式集成,Xcode在编译时就无需再编译,从而节省编译时间。该方案中,从源码集成形式更改为静态库集成形式,需要通过工具化方式实现。编译后的库包含头文件、编译文件、资源等。静态库的后缀名为.a。其中,Xcode是运行在操作系统Mac OS X上的集成开发工具。Taking the iOS system as an example, iOS is a mobile operating system developed by Apple. It is mainly used for iPhone, iPodtouch and iPad. By integrating the pre-compiled compiled files, Apple developers directly integrate the target library in the form of source code as a static library, and Xcode does not need to compile again during compilation, thus saving compilation time. In this solution, the change from the source code integration form to the static library integration form needs to be realized by means of tooling. The compiled library contains header files, compiled files, resources, etc. Static libraries have the suffix .a. Among them, Xcode is an integrated development tool running on the operating system Mac OS X.

在iOS系统预编译静态库集成主要包括两个工作:首先,通过库管理工具指定代码集成的方式,即目标工程可以选择源码集成或者静态库集成。例如,库的描述中通过“vendored_libraries”来指定代码集成的方式“ios/libOne_CGPUImage.a”。这里,静态库的后缀名为.a,可以确定当前目标工程为静态库集成。然后,替换原集成方式为path形式,path为本地存储的预编译后的静态库路径,即可以通过path所指向的路径来找到目标工程中的目标静态库的编译文件。Precompiling static library integration in the iOS system mainly includes two tasks: First, specify the code integration method through the library management tool, that is, the target project can choose source code integration or static library integration. For example, the description of the library uses "vendored_libraries" to specify the way the code is integrated "ios/libOne_CGPUImage.a". Here, the suffix of the static library is .a, and it can be determined that the current target project is a static library integration. Then, replace the original integration mode with the path form, where the path is the precompiled static library path stored locally, that is, the compiled file of the target static library in the target project can be found through the path pointed to by the path.

这里,通过库管理工具就可以快速的在目标工程的多个静态库中,确定出目标静态库,并且获得目标静态库的编译文件。Here, through the library management tool, the target static library can be quickly determined among the multiple static libraries of the target project, and the compiled file of the target static library can be obtained.

在一个或多个实施例中,获取目标静态库的存储路径;基于目标静态库的存储路径,获取目标静态库的编译文件。In one or more embodiments, the storage path of the target static library is obtained; based on the storage path of the target static library, the compiled file of the target static library is obtained.

首先,在静态库打包集成时,可以将静态库的编译文件存储在指定的服务器(即远程设备)上,然后,在准备开发时,可以根据需要使用静态库的库名信息和版本信息下载指定的静态库的编译文件并存储在本地设备,每个静态库在用户的电子设备本地都对应一个存储路径。在这之后,可以通过目标静态库的存储路径,获取到目标静态库的编译文件。First of all, when the static library is packaged and integrated, the compiled file of the static library can be stored on the specified server (that is, the remote device). Then, when preparing for development, the library name information and version information of the static library can be used as needed to download the specified file. The compiled file of the static library is stored in the local device, and each static library corresponds to a storage path locally on the user's electronic device. After this, the compiled file of the target static library can be obtained through the storage path of the target static library.

由于目标工程是由多个静态库集成得到,这里,基于目标静态库的存储路径,能够从工程目录中的多个静态库的存储路径确定目标静态库的存储路径,进而快速的确定目标静态库。Since the target project is obtained by integrating multiple static libraries, here, based on the storage path of the target static library, the storage path of the target static library can be determined from the storage paths of multiple static libraries in the project directory, and then the target static library can be quickly determined. .

其次,介绍S320。Next, introduce the S320.

利用预设解析工具件解析编译文件,由于编译文件是被编译得到的,这里需要解析得到编译文件被编译之前的第一源码文件的存储路径。The compiled file is parsed by using a preset parsing tool. Since the compiled file is obtained by compiling, it is necessary to parse to obtain the storage path of the first source code file before the compiled file is compiled.

其中,路径为用户在磁盘上寻找文件时,所历经的文件夹线路叫路径。路径分为绝对路径和相对路径。本公开涉及的路径为绝对路径,绝对路径是从根文件夹开始的路径,以“/”作为开始。Among them, the path is the folder line that the user goes through when searching for the file on the disk, which is called the path. Paths are divided into absolute paths and relative paths. The path involved in the present disclosure is an absolute path, and an absolute path is a path starting from the root folder, starting with "/".

示例性地,路径可以为“Users/Jackson/目标文件夹/目标子文件夹”。Illustratively, the path may be "Users/Jackson/target folder/target subfolder".

在一个或多个实施例中,利用预设组件加载目标静态库的调试信息;根据调试信息确定第一源码文件的第一存储路径。In one or more embodiments, the debugging information of the target static library is loaded by using a preset component; and the first storage path of the first source code file is determined according to the debugging information.

其中,调试信息是从编译后的文件中来的。在编译的时候,编译器会从源文件中收集大量的信息,例如变量名、变量类型、变量所在行号、函数名、函数参数、函数的地址范围、行号和地址的对应关系等等,然后按照一种特定的格式写入到编译后的文件中。调试的时候,调试器便从文件中读取并解析这些信息,以产生人们可读性比较强的信息。Among them, the debugging information is from the compiled file. When compiling, the compiler will collect a lot of information from the source file, such as variable name, variable type, line number where the variable is located, function name, function parameters, address range of the function, correspondence between line numbers and addresses, etc. It is then written to the compiled file in a specific format. When debugging, the debugger reads and parses this information from the file to produce more human-readable information.

这里,对所述目标静态库进行解析得到的调试信息,也包括目标静态库与所述目标源码之间的映射关系,比如目标静态库中第M行的某一函数对应的是源码文件中第N行的某一函数。后续就可以根据此映射关系,将目标静态库对应的汇编指令转换为源码文件,以实现对所述目标静态库的调试。Here, the debugging information obtained by parsing the target static library also includes the mapping relationship between the target static library and the target source code. A function of N lines. Subsequently, according to the mapping relationship, the assembly instructions corresponding to the target static library can be converted into source code files, so as to realize the debugging of the target static library.

以iOS系统为例,在iOS的应用开发中使用的是Objective-C语言和Swift语言,Objective-C语言和Swift语言都是一种编译语言。编译语言在执行的时候,必须先通过编译器生成机器码,机器码可以直接在处理器上执行,所以执行效率较高。Taking the iOS system as an example, the Objective-C language and the Swift language are used in the application development of the iOS system. Both the Objective-C language and the Swift language are a compiled language. When a compiled language is executed, the machine code must be generated by the compiler first, and the machine code can be directly executed on the processor, so the execution efficiency is high.

其中,Objective-C语言是C语言的严格超集,任何C语言程序不经修改就可以直接通过Objective-C编译器,在Objective-C中使用C语言代码也是完全合法的。Objective-C被描述为盖在C语言上的薄薄一层,因为Objective-C的原意就是在C语言主体上加入面向对象的特性。Swift语言可与Objective-C语言共同运行于MAC OS和iOS平台,用于搭建基于苹果平台的应用程序。Among them, the Objective-C language is a strict superset of the C language. Any C language program can directly pass the Objective-C compiler without modification, and it is completely legal to use the C language code in Objective-C. Objective-C is described as a thin layer over the C language, because the original intention of Objective-C is to add object-oriented features to the main body of the C language. Swift language can run on MAC OS and iOS platform together with Objective-C language to build applications based on Apple platform.

为了实现Xcode将对应的汇编调试信号和展示的汇编代码指令,转换/解析为开发者熟悉的objective-c和/或switft语言的源码,就必须建立编译文件符号与本地源码文件的映射。汇编代码指令是汇编语言中使用的一些操作符和助记符,还包括一些伪指令,同机器指令一一对应。每一种CPU都有自己的汇编指令集。In order to realize that Xcode converts/parses the corresponding assembly debug signals and displayed assembly code instructions into the source code of the objective-c and/or switft language familiar to the developer, it is necessary to establish a mapping between the symbols of the compiled file and the local source code file. Assembly code instructions are some operators and mnemonics used in assembly language, and also include some pseudo-instructions, which correspond one-to-one with machine instructions. Each CPU has its own assembly instruction set.

静态库中的编译文件由底层虚拟机(Low Level Virtual Machine,LLVM)中的clang编译器编译产生,编译文件内部结构复杂。要想了解编译文件的构成,我们必须借助相关的工具来了解和分析。其中,LLVM是构架编译器(compiler)的框架系统,用于优化以任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time),对开发者保持开放,并兼容已有脚本。LLVM能够进行程序语言的编译期优化、链接优化、在线编译优化、代码生成。Clang是一个由Apple主导编写,基于LLVM的C/C++/Objective-C编译器,能够快速编译。The compiled files in the static library are compiled and generated by the clang compiler in the low level virtual machine (Low Level Virtual Machine, LLVM), and the internal structure of the compiled files is complex. To understand the composition of compiled files, we must use relevant tools to understand and analyze them. Among them, LLVM is a framework system for building a compiler (compiler), which is used to optimize the compile-time (compile-time), link-time (link-time), run-time (run-time) and idle time of programs written in any programming language. idle-time, open to developers and compatible with existing scripts. LLVM can perform compile-time optimization, link optimization, online compilation optimization, and code generation of programming languages. Clang is an LLVM-based C/C++/Objective-C compiler written by Apple and able to compile quickly.

这里,可以用苹果App crash日志文件解析常用的dwarfdump命令来加载苹果系统下编译文件(ELF格式)的属性记录格式调试(Debugging With Attributed RecordFormats,DWARF)调试信息,通过调试信息来了解编译文件的构成。DWARF调试信息中包括一个“AT_comp_dir”属性记录,其值为一个以Null结尾的字符串,其中包含以DWARF调试信息格式生成该编译单元的编译命令的当前工作目录。这里的工作目录就可以为第一源码文件的第一存储路径。Here, you can use the commonly used dwarfdump command to parse the Apple App crash log file to load the Debugging With Attributed RecordFormats (DWARF) debugging information of the compiled file (ELF format) under the Apple system, and understand the composition of the compiled file through the debugging information. . The DWARF debug information includes an "AT_comp_dir" attribute record whose value is a null-terminated string containing the current working directory of the compilation command that generated the compilation unit in DWARF debug information format. The working directory here may be the first storage path of the first source code file.

这里,通过简单易得的调试信息,就可以确定第一源码文件的第一存储路径,后续就可以将线上下载的第二源码信息下载至本地设备中与第一存储路径相同的第二存储路径下,进而实现源码调试。无需将静态库的编译文件编译回源码文件来实现源码调试,节约成本,减少时间。Here, the first storage path of the first source code file can be determined through simple and easy-to-obtain debugging information, and then the second source code information downloaded online can be downloaded to the second storage path in the local device that is the same as the first storage path path, and then realize source code debugging. There is no need to compile the compiled files of the static library back to the source code files to realize source code debugging, saving costs and reducing time.

接着,介绍S330。Next, S330 is introduced.

在上述S320确定了第一存储路径,第一存储路径可以为远程设备上的存储路径,接着可以在本地设备中创建与第一存储路径相同的第二存储路径。The first storage path is determined in the above S320, and the first storage path may be a storage path on the remote device, and then a second storage path that is the same as the first storage path may be created in the local device.

示例性地,第一存储路径为“Users/Jackson/目标文件夹/目标子文件夹”,那么在本地设备中创建与第一存储路径相同的第二存储路径也为:“Users/Jackson/目标文件夹/目标子文件夹”。Exemplarily, the first storage path is "Users/Jackson/target folder/target subfolder", then creating a second storage path that is the same as the first storage path in the local device is also: "Users/Jackson/target folder/target subfolder".

然后,介绍S340。Then, S340 is introduced.

目标静态库的配置文件包括目标静态库的一些属性信息,通过解析目标静态库的配置文件,可以从网络上下载目标静态库对应的第二源码文件,这里的第二源码文件与第一源码文件的内容相同。然后将第二源码文件存储到第二存储路径。The configuration file of the target static library includes some attribute information of the target static library. By parsing the configuration file of the target static library, the second source code file corresponding to the target static library can be downloaded from the network. Here, the second source code file is the same as the first source code file. content is the same. Then, the second source code file is stored in the second storage path.

需要说明的是,这里的第二源码文件与第一源码文件的内容是相同的,但是第一源码文件是存储在远程设备上的源码文件,第二源码文件时通过网络下载的源码文件。It should be noted that the content of the second source code file here is the same as that of the first source code file, but the first source code file is the source code file stored on the remote device, and the second source code file is the source code file downloaded through the network.

如图4所示,作为本公开的另一种实现方式,为了提升源码的准确度,在S340之前,还可以包括以下步骤:As shown in FIG. 4, as another implementation manner of the present disclosure, in order to improve the accuracy of the source code, before S340, the following steps may also be included:

S360,获取目标静态库的配置文件;根据目标静态库的配置文件确定目标静态库的线上地址和版本信息;根据线上地址和版本信息下载目标静态库对应的第二源码文件。S360: Obtain the configuration file of the target static library; determine the online address and version information of the target static library according to the configuration file of the target static library; download the second source code file corresponding to the target static library according to the online address and version information.

上述涉及到的版本信息包括版本号,版本号是版本的标识号。每一个操作系统(或广义的讲,每一个软件)都有一个版本号。版本号能使用户了解所使用的操作系统是否为最新的版本以及它所提供的功能与设施。版本号有多种划分方式,比如按照授权和功能划分、语言划分等,本公开涉及的版本信息具体根据实际版本信息适应性变化。The above-mentioned version information includes a version number, and the version number is an identification number of the version. Every operating system (or broadly speaking, every software) has a version number. The version number enables the user to know whether the operating system in use is the latest version and the features and facilities it provides. There are various ways of dividing the version number, for example, according to authorization, function, language, etc. The version information involved in the present disclosure is specifically adapted to change according to the actual version information.

示例性地,应用程序X有多个版本,包括:X1.0、X2.0和X3.0等,“1.0、2.0和3.0”就代表应用程序X的多个版本。实际上,应用程序或者软件版本号更为复杂,可以由四部分组成,第一个1为主版本号,第二个1为子版本号,第三个1为阶段版本号,第四部分为日期版本号加希腊字母版本号,希腊字母版本号共有5种,分别为:base、alpha、beta、RC、release。例如:1.1.1.051021_beta。Exemplarily, the application X has multiple versions, including: X1.0, X2.0, and X3.0, etc. "1.0, 2.0, and 3.0" represent multiple versions of the application X. In fact, the application or software version number is more complex and can be composed of four parts, the first 1 is the main version number, the second 1 is the subversion number, the third 1 is the stage version number, and the fourth part is The date version number plus the Greek letter version number, there are 5 types of Greek letter version numbers: base, alpha, beta, RC, release. For example: 1.1.1.051021_beta.

上述涉及到的线上地址可以为网址或链接,线上地址指向目标静态库对应的第二源码文件的线上存储地址,可以通过目标静态库的线上地址下载与其对应的第二源码文件。The above-mentioned online address can be a website or a link. The online address points to the online storage address of the second source code file corresponding to the target static library, and the corresponding second source code file can be downloaded through the online address of the target static library.

这里,根据目标静态库的线上地址和版本信息,就能够唯一的确定目标静态库对应的第二源码文件,从而将线上的第二源码文件下载到本地设备,保证第二源码文件的准确度。Here, according to the online address and version information of the target static library, the second source code file corresponding to the target static library can be uniquely determined, so that the online second source code file can be downloaded to the local device to ensure the accuracy of the second source code file. Spend.

在一个或多个实施例中,将第二源码文件下载至临时存储路径;将第二源码文件从临时存储路径移动至第二存储路径。In one or more embodiments, the second source code file is downloaded to the temporary storage path; the second source code file is moved from the temporary storage path to the second storage path.

由于通过网络下载的文件一般会保存在默认路径下、即临时路径。所以,在将第二源码文件自动下载至临时存储路径的情况下,需要再将第二源码文件从临时存储路径移动至第二存储路径。Because the files downloaded through the network are generally saved in the default path, that is, the temporary path. Therefore, when the second source code file is automatically downloaded to the temporary storage path, the second source code file needs to be moved from the temporary storage path to the second storage path.

这里,通过将第二源码文件从临时存储路径移动至第二存储路径,能够保证与在与远程设备上编译生成目标静态库所使用的源码文件的第一存储路径相同的本地设备的第二存储路径下也能存在同样的源码文件,进而能够支持后续的调试功能。Here, by moving the second source code file from the temporary storage path to the second storage path, the second storage path of the local device can be guaranteed to be the same as the first storage path of the source code file used to compile and generate the target static library on the remote device The same source code file can also exist in the path, which can support subsequent debugging functions.

作为本公开的另一种实现方式,为了清楚的识别第二源码文件,在上述涉及到将第二源码文件下载至临时存储路径的步骤之前,还可以包括以下步骤:As another implementation manner of the present disclosure, in order to clearly identify the second source code file, before the above-mentioned steps related to downloading the second source code file to the temporary storage path, the following steps may also be included:

删除临时路径下的第三源码文件,第三源码文件为除第二源码文件以外的源码文件。Delete the third source code file in the temporary path, where the third source code file is a source code file other than the second source code file.

为了避免以往文件覆盖第二源码文件,以及为了清楚的识别第二源码文件,在将第二源码文件下载至临时存储路径之前,可以先将临时路径下的第三源码文件清除。In order to avoid previous files from overwriting the second source code file and to clearly identify the second source code file, before downloading the second source code file to the temporary storage path, the third source code file in the temporary path may be cleared first.

这里,通过删除临时路径下的除第二源码文件以外的源码文件,可以快速且准确的找到第二源码文件,也可以避免以往文件覆盖第二源码文件。Here, by deleting the source code files other than the second source code file in the temporary path, the second source code file can be found quickly and accurately, and the second source code file can be prevented from being overwritten by previous files.

最后,介绍S350。Finally, introduce the S350.

经过上述S310-S340的步骤,就可以保证与在与远程设备上编译生成目标静态库所使用的源码文件的第一存储路径相同的本地设备的第二存储路径下也存在同样的源码文件。这时,调试时就可以自动读取到对应的源码并支持调试功能。即可以基于第二存储路径读取第二源码文件,以调试第二源码文件。After the above steps S310-S340, it can be ensured that the same source code file exists in the second storage path of the local device that is the same as the first storage path of the source code file used for compiling and generating the target static library on the remote device. At this time, the corresponding source code can be automatically read and the debugging function can be supported during debugging. That is, the second source code file can be read based on the second storage path to debug the second source code file.

作为本公开的另一种实现方式,为了保证第二源码文件的准确性和安全性,在S350之前,还可以包括以下步骤:As another implementation manner of the present disclosure, in order to ensure the accuracy and security of the second source code file, before S350, the following steps may also be included:

基于MD5信息摘要算法(MD5 Message-Digest Algorithm,MD5)验证第二源码文件是否为目标第二源码文件。Based on the MD5 Message-Digest Algorithm (MD5), it is verified whether the second source code file is the target second source code file.

具体地,计算第二源码文件的第一MD5值,将第一MD5值与第二源码文件中自带的第二MD5值,在第一MD5值和第二MD5值相同的情况下,确定第二源码文件为目标第二源码文件。相应地,只有在验证通过的情况下,才可以基于第二存储路径读取第二源码文件,以调试第二源码文件。Specifically, the first MD5 value of the second source code file is calculated, the first MD5 value and the second MD5 value included in the second source code file are used, and in the case that the first MD5 value and the second MD5 value are the same, the The second source code file is the target second source code file. Correspondingly, only when the verification is passed, the second source code file can be read based on the second storage path to debug the second source code file.

如果验证不通过,则说明S340中通过解析目标静态库的配置文件得到的第二源码文件下载错误,不是与目标静态库对应的第二源码文件;或者通过解析目标静态库的配置文件得到的第二源码文件被篡改。此时,将不会基于第二存储路径读取第二源码文件,以调试第二源码文件。If the verification fails, it means that the second source code file obtained by parsing the configuration file of the target static library in S340 is incorrectly downloaded, and it is not the second source code file corresponding to the target static library; or the second source code file obtained by parsing the configuration file of the target static library is incorrect. Two source files were tampered with. At this time, the second source code file will not be read based on the second storage path to debug the second source code file.

其中,MD5,是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5的典型应用是对一段信息产生信息摘要,以防止被篡改。Among them, MD5 is a widely used cryptographic hash function, which can generate a 128-bit (16-byte) hash value to ensure complete and consistent information transmission. A typical application of MD5 is to generate a message digest for a piece of information to prevent tampering.

比如,很多软件在下载的时候都有一个文件名相同,文件扩展名为.md5的文件,在这个文件中通常只有一行文本,大致结构为:MD5(dieryuanmawenjian.tar.gz)=0ca175b9c0f795e269332461。这就是dieryuanmawenjian.tar.gz文件的数字签名。MD5将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的MD5信息摘要。MD5可以为任何文件产生一个独一无二的“数字指纹”,如果任何人对文件名做了任何改动,其MD5值也就是对应的“数字指纹”都会发生变化。For example, when many software are downloaded, there is a file with the same file name and the file extension of .md5. There is usually only one line of text in this file, and the general structure is: MD5(dieryuanmawenjian.tar.gz)=0ca175b9c0f795e269332461. This is the digital signature of the dieryuanmawenjian.tar.gz file. MD5 treats the entire file as a large text message, and generates this unique MD5 message digest through its irreversible string transformation algorithm. MD5 can generate a unique "digital fingerprint" for any file. If anyone makes any changes to the file name, its MD5 value, that is, the corresponding "digital fingerprint" will change.

MD5值能够在下载该软件后,对下载回来的文件用专门的检验工具(如WindowsMD5 Check等)做一次MD5校验,以确保我们获得的文件与该站点提供的文件为同一文件。MD5还可以有效防止被“篡改”。比如,将一段话写在一个文件中,并对这个文件产生一个MD5的值并记录在案,然后可以传播这个文件给别人,别人如果修改了文件中的任何内容,再次对这个文件重新计算MD5时就会发现,两个MD5值不相同。After downloading the software, the MD5 value can be checked by a special inspection tool (such as WindowsMD5 Check, etc.) on the downloaded file to ensure that the file we obtained is the same file as the one provided by the site. MD5 can also effectively prevent "tampering". For example, write a paragraph in a file, generate an MD5 value for the file and record it, and then spread the file to others. If others modify any content in the file, recalculate the MD5 for the file again. You will find that the two MD5 values are not the same.

这里,可以保证第二源码文件的安全性、正确性和有效性。Here, the security, correctness and validity of the second source code file can be guaranteed.

作为本公开的另一种实现方式,为了避免浪费本地设备的磁盘空间,在S350之后,还可以包括以下步骤:As another implementation manner of the present disclosure, in order to avoid wasting the disk space of the local device, after S350, the following steps may be further included:

S370,在完成对第二源码文件的调试的情况下,删除第二存储路径下的第二源码文件。S370, when the debugging of the second source code file is completed, delete the second source code file in the second storage path.

在完成对第二源码文件的调试的情况下,可以将第二源码文件从第二存储路径下删除,这样可以实现动态装载和卸载静态库的第二源码文件,能够避免浪费本地设备的磁盘空间。When the debugging of the second source code file is completed, the second source code file can be deleted from the second storage path, so that the second source code file of the static library can be dynamically loaded and unloaded, which can avoid wasting the disk space of the local device .

需要说明的是,上述S310-S370的步骤和方法,在实际应用过程中,都可以通过一行或多行的命令行实现,这里,可以将解析第一源码文件的第一存储路径、目标静态库对应的第二源码文件下载、调试第二源码文件等一系列流程工程化。其中,在开发、测试、部署和维护过程中应用的系统化、严格约束、可量化的方法都可以称之为工程化。工程化的程度越高,因个体差异性导致的缺陷或者短板就会越少,工程质量可以得到更有效的保障。It should be noted that, in the actual application process, the above steps and methods of S310-S370 can be implemented by one or more lines of command lines. Here, the first storage path of the first source code file and the target static library can be A series of process engineering such as downloading the corresponding second source code file and debugging the second source code file. Among them, the systematic, strictly constrained and quantifiable methods applied in the development, testing, deployment and maintenance process can be called engineering. The higher the degree of engineering, the fewer defects or shortcomings caused by individual differences, and the quality of the project can be more effectively guaranteed.

在本公开实施例中,通过对目标静态库的编译文件进行解析,确定第一源码文件在被编译时的第一存储路径,并在本地创建与第一存储路径相同的第二存储路径,然后将基于目标静态库的配置文件确定的第二源码文件存储于第二存储路径,这样,在调试时就可以自动读取到存储于第二存储路径下的第二源码文件,以调试第二源码文件。这样,能够将只有机器才能识别的编译文件直接转换为调试人员可读的第二源码文件,以实现对第二源码文件的调试。由此,可以节约调试人员的工作时间,提升开发效率。In the embodiment of the present disclosure, by analyzing the compiled file of the target static library, the first storage path of the first source code file when compiled is determined, and the second storage path that is the same as the first storage path is created locally, and then Store the second source code file determined based on the configuration file of the target static library in the second storage path, so that the second source code file stored in the second storage path can be automatically read during debugging to debug the second source code document. In this way, the compiled file that can only be recognized by the machine can be directly converted into the second source code file readable by the debugger, so as to realize the debugging of the second source code file. In this way, the working time of the debugging personnel can be saved, and the development efficiency can be improved.

基于上述源码调试方法,本公开还提供了一种源码调试装置。具体结合图5进行说明。Based on the above source code debugging method, the present disclosure also provides a source code debugging device. The specific description will be made with reference to FIG. 5 .

图5是根据一示例性实施例示出的一种源码调试装置的框图。参照图5,该源码调试装置500可以包括获取模块510、解析模块520、创建模块530、存储模块540和读取模块550。Fig. 5 is a block diagram of a source code debugging apparatus according to an exemplary embodiment. 5 , the source code debugging apparatus 500 may include an acquisition module 510 , a parsing module 520 , a creation module 530 , a storage module 540 and a reading module 550 .

获取模块510,被配置为执行在目标工程的调试过程中,获取目标工程中的目标静态库的编译文件,编译文件通过对第一源码文件进行编译得到。The obtaining module 510 is configured to obtain a compiled file of the target static library in the target project during the debugging process of the target project, and the compiled file is obtained by compiling the first source code file.

解析模块520,被配置为执行解析编译文件,得到第一源码文件的第一存储路径,第一存储路径为第一源码文件被编译为编译文件时的存储路径。The parsing module 520 is configured to perform parsing of the compiled file to obtain a first storage path of the first source code file, where the first storage path is the storage path when the first source code file is compiled into a compiled file.

创建模块530,被配置为执行在本地设备中创建与第一存储路径相同的第二存储路径。The creating module 530 is configured to perform creating a second storage path that is the same as the first storage path in the local device.

存储模块540,被配置为执行将第二源码文件存储到第二存储路径,第二源码文件通过解析目标静态库的配置文件得到,第二源码文件与第一源码文件的内容相同。The storage module 540 is configured to store the second source code file in the second storage path. The second source code file is obtained by parsing the configuration file of the target static library, and the content of the second source code file is the same as that of the first source code file.

读取模块550,被配置为执行基于第二存储路径读取第二源码文件,以调试第二源码文件。The reading module 550 is configured to read the second source code file based on the second storage path, so as to debug the second source code file.

在本公开实施例中,该源码调试装置500通过对目标静态库的编译文件进行解析,确定第一源码文件在被编译时的第一存储路径,并在本地创建与第一存储路径相同的第二存储路径,然后将基于目标静态库的配置文件确定的第二源码文件存储于第二存储路径,这样,在调试时就可以自动读取到存储于第二存储路径下的第二源码文件,以调试第二源码文件。这样,能够将只有机器才能识别的编译文件直接转换为调试人员可读的第二源码文件,以实现对第二源码文件的调试。由此,可以节约调试人员的工作时间,提升开发效率。In the embodiment of the present disclosure, the source code debugging apparatus 500 determines the first storage path of the first source code file when it is compiled by analyzing the compiled file of the target static library, and locally creates a first storage path that is the same as the first storage path. Second storage path, and then store the second source code file determined based on the configuration file of the target static library in the second storage path, so that the second source code file stored in the second storage path can be automatically read during debugging, to debug the second source code file. In this way, the compiled file that can only be recognized by the machine can be directly converted into the second source code file readable by the debugger, so as to realize the debugging of the second source code file. In this way, the working time of the debugging personnel can be saved, and the development efficiency can be improved.

在本公开一些实施例中,获取模块510,被进一步配置为执行:获取目标静态库的存储路径;基于目标静态库的存储路径,获取目标静态库的编译文件。In some embodiments of the present disclosure, the obtaining module 510 is further configured to execute: obtaining the storage path of the target static library; and obtaining the compiled file of the target static library based on the storage path of the target static library.

在本公开一些实施例中,获取模块510,被进一步配置为执行获取目标静态库的配置文件;In some embodiments of the present disclosure, the obtaining module 510 is further configured to execute obtaining the configuration file of the target static library;

相应地,该源码调试装置500还可以包括:第一确定模块和第一下载模块。Correspondingly, the source code debugging apparatus 500 may further include: a first determination module and a first download module.

该第一确定模块,被配置为执行根据目标静态库的配置文件确定目标静态库的线上地址和版本信息;The first determining module is configured to determine the online address and version information of the target static library according to the configuration file of the target static library;

该第一下载模块,被配置为执行根据线上地址和版本信息下载目标静态库对应的第二源码文件。The first download module is configured to download the second source code file corresponding to the target static library according to the online address and version information.

在本公开一些实施例中,解析模块520包括:加载模块和第二确定模块。In some embodiments of the present disclosure, the parsing module 520 includes: a loading module and a second determining module.

该加载模块,被配置为执行利用预设组件加载目标静态库的调试信息;The loading module is configured to execute debug information for loading the target static library by using the preset component;

该第二确定模块,被配置为执行根据调试信息确定第一源码文件的第一存储路径。The second determining module is configured to execute determining the first storage path of the first source code file according to the debugging information.

在本公开一些实施例中,存储模块540包括:第二下载模块和移动模块。In some embodiments of the present disclosure, the storage module 540 includes: a second download module and a mobile module.

该第二下载模块,被配置为执行将第二源码文件下载至临时存储路径;The second downloading module is configured to execute the downloading of the second source code file to the temporary storage path;

该移动模块,被配置为执行将第二源码文件从临时存储路径移动至第二存储路径。The moving module is configured to execute moving the second source code file from the temporary storage path to the second storage path.

在本公开一些实施例中,该源码调试装置500还可以包括:第一删除模块。In some embodiments of the present disclosure, the source code debugging apparatus 500 may further include: a first deletion module.

该第一删除模块,被配置为执行删除临时路径下的第三源码文件,第三源码文件为除第二源码文件以外的源码文件。The first deletion module is configured to delete the third source code file in the temporary path, where the third source code file is a source code file other than the second source code file.

在本公开一些实施例中,该源码调试装置500还可以包括:第二删除模块。In some embodiments of the present disclosure, the source code debugging apparatus 500 may further include: a second deletion module.

该第二删除模块,被配置为执行在完成对第二源码文件的调试的情况下,删除第二存储路径下的第二源码文件。The second deletion module is configured to delete the second source code file in the second storage path when the debugging of the second source code file is completed.

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。Regarding the apparatus in the above-mentioned embodiment, the specific manner in which each module performs operations has been described in detail in the embodiment of the method, and will not be described in detail here.

图6是根据一示例性实施例示出的一种服务器的框图。参照图6,本公开实施例还提供了一种服务器,包括处理器610、通信接口620、存储器630和通信总线640,其中,处理器610、通信接口620和存储器630通过通信总线640完成相互间的通信。Fig. 6 is a block diagram of a server according to an exemplary embodiment. 6 , an embodiment of the present disclosure further provides a server, including a processor 610 , a communication interface 620 , a memory 630 and a communication bus 640 , wherein the processor 610 , the communication interface 620 and the memory 630 communicate with each other through the communication bus 640 Communication.

该存储器630,用于存放处理器610可执行的指令。The memory 630 is used for storing instructions executable by the processor 610 .

该处理器610,用于执行存储器630上所存放的指令时,实现如下步骤:When the processor 610 is used to execute the instructions stored in the memory 630, the following steps are implemented:

在目标工程的调试过程中,获取目标工程中的目标静态库的编译文件,编译文件通过对第一源码文件进行编译得到;解析编译文件,得到第一源码文件的第一存储路径,第一存储路径为第一源码文件被编译为编译文件时的存储路径;在本地设备中创建与第一存储路径相同的第二存储路径;将第二源码文件存储到第二存储路径,第二源码文件通过解析目标静态库的配置文件得到,第二源码文件与第一源码文件的内容相同;基于第二存储路径读取第二源码文件,以调试第二源码文件。During the debugging process of the target project, the compiled file of the target static library in the target project is obtained, and the compiled file is obtained by compiling the first source code file; the compiled file is parsed to obtain the first storage path of the first source code file, and the first storage The path is the storage path when the first source code file is compiled into a compiled file; a second storage path that is the same as the first storage path is created in the local device; the second source code file is stored in the second storage path, and the second source code file passes through The configuration file of the target static library is analyzed to obtain that the content of the second source code file is the same as that of the first source code file; the second source code file is read based on the second storage path to debug the second source code file.

可见,应用本公开实施例,通过对目标静态库的编译文件进行解析,确定第一源码文件在被编译时的第一存储路径,并在本地创建与第一存储路径相同的第二存储路径,然后将基于目标静态库的配置文件确定的第二源码文件存储于第二存储路径,这样,在调试时就可以自动读取到存储于第二存储路径下的第二源码文件,以调试第二源码文件。这样,能够将只有机器才能识别的编译文件直接转换为调试人员可读的第二源码文件,以实现对第二源码文件的调试。由此,可以节约调试人员的工作时间,提升开发效率。It can be seen that, applying the embodiment of the present disclosure, by analyzing the compiled file of the target static library, the first storage path of the first source code file when compiled is determined, and the second storage path that is the same as the first storage path is created locally, Then, the second source code file determined based on the configuration file of the target static library is stored in the second storage path, so that the second source code file stored in the second storage path can be automatically read during debugging to debug the second source code file. source file. In this way, the compiled file that can only be recognized by the machine can be directly converted into the second source code file readable by the debugger, so as to realize the debugging of the second source code file. In this way, the working time of the debugging personnel can be saved, and the development efficiency can be improved.

图7是根据一示例性实施例示出的用于数据处理的设备的框图。例如,该设备700可以被提供为一服务器。参照图7,服务器700包括处理组件722,其进一步包括一个或多个处理器,以及由存储器732所代表的存储器资源,用于存储可由处理组件722的执行的指令,例如应用程序。存储器732中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件722被配置为执行指令,以执行上述任一实施例所述的源码调试方法。FIG. 7 is a block diagram of an apparatus for data processing according to an exemplary embodiment. For example, the device 700 may be provided as a server. 7, server 700 includes processing component 722, which further includes one or more processors, and a memory resource, represented by memory 732, for storing instructions executable by processing component 722, such as application programs. An application program stored in memory 732 may include one or more modules, each corresponding to a set of instructions. In addition, the processing component 722 is configured to execute the instructions to execute the source code debugging method described in any one of the above embodiments.

该设备700还可以包括一个电源组件726被配置为执行设备700的电源管理,一个有线或无线网络接口750被配置为将设备700连接到网络,和一个输入输出(I/O)接口758。设备700可以操作基于存储在存储器732的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。The device 700 may also include a power component 726 configured to perform power management of the device 700, a wired or wireless network interface 750 configured to connect the device 700 to a network, and an input output (I/O) interface 758. Device 700 may operate based on an operating system stored in memory 732, such as Windows Server™, Mac OS X™, Unix™, Linux™, FreeBSD™ or the like.

在本公开一些实施例中,还提供了一种存储介质,当该存储介质中的指令由服务器的处理器执行时,使得服务器能够执行上述任一实施例所述的源码调试方法。In some embodiments of the present disclosure, a storage medium is also provided, when the instructions in the storage medium are executed by the processor of the server, the server can execute the source code debugging method described in any of the foregoing embodiments.

可选地,该存储介质可以是非临时性计算机可读存储介质,示例性的,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。Alternatively, the storage medium may be a non-transitory computer-readable storage medium, for example, the non-transitory computer-readable storage medium may be ROM, random access memory (RAM), CD-ROM, magnetic tape, floppy disk, and optical data storage devices, etc.

在本公开一些实施例中,还提供了一种计算机程序产品,当计算机程序产品中的指令由服务器的处理器执行时,使得服务器能够执行上述任一实施例所述的源码调试方法。In some embodiments of the present disclosure, a computer program product is also provided, when the instructions in the computer program product are executed by the processor of the server, the server can execute the source code debugging method described in any of the above embodiments.

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。Other embodiments of the present disclosure will readily occur to those skilled in the art upon consideration of the specification and practice of the invention disclosed herein. This disclosure is intended to cover any variations, uses, or adaptations of this disclosure that follow the general principles of this disclosure and include common general knowledge or techniques in the technical field not disclosed by this disclosure . The specification and examples are to be regarded as exemplary only, with the true scope and spirit of the disclosure being indicated by the following claims.

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。It is to be understood that the present disclosure is not limited to the precise structures described above and illustrated in the accompanying drawings, and that various modifications and changes may be made without departing from the scope thereof. The scope of the present disclosure is limited only by the appended claims.

Claims (10)

1. A source code debugging method is characterized by comprising the following steps:
in the debugging process of a target project, obtaining a compiling file of a target static library in the target project, wherein the compiling file is obtained by compiling a first source code file;
analyzing the compiled file to obtain a first storage path of the first source code file, wherein the first storage path is a storage path when the first source code file is compiled into the compiled file;
creating a second storage path in the local device that is the same as the first storage path;
storing a second source code file to the second storage path, wherein the second source code file is obtained by analyzing the configuration file of the target static library, and the second source code file has the same content as the first source code file;
and reading the second source code file based on the second storage path so as to debug the second source code file.
2. The method of claim 1, wherein prior to said storing the second source code file to the second storage path, the method further comprises:
acquiring a configuration file of the target static library;
determining the online address and version information of the target static library according to the configuration file of the target static library;
and downloading a second source code file corresponding to the target static library according to the online address and the version information.
3. The method of claim 1, wherein after the reading the second source code file based on the second storage path to debug the second source code file, the method further comprises:
and deleting the second source code file under the second storage path under the condition that debugging of the second source code file is completed.
4. The method of claim 1, wherein obtaining the compiled file of the target static library in the target project comprises:
acquiring a storage path of the target static library;
and acquiring a compiled file of the target static library based on the storage path of the target static library.
5. The method of claim 1, wherein parsing the compiled file to obtain a first storage path of the first source code file comprises:
loading debugging information of the target static library by using a preset component;
and determining a first storage path of the first source code file according to the debugging information.
6. The method of claim 1, wherein storing the second source code file to the second storage path comprises:
downloading the second source code file to a temporary storage path;
and moving the second source code file from the temporary storage path to the second storage path.
7. The method of claim 6, wherein prior to said downloading said second source code file to a temporary storage path, said method further comprises:
and deleting a third source code file under the temporary path, wherein the third source code file is a source code file except the second source code file.
8. A source code debugging apparatus, comprising:
the system comprises an acquisition module, a debugging module and a control module, wherein the acquisition module is configured to acquire a compiled file of a target static library in a target project in the debugging process of the target project, and the compiled file is obtained by compiling a first source code file;
the analysis module is configured to analyze the compiled file to obtain a first storage path of the first source code file, wherein the first storage path is a storage path of the first source code file when the first source code file is compiled into the compiled file;
a creation module configured to perform creating a second storage path identical to the first storage path in a local device;
a storage module configured to store a second source code file to the second storage path, where the second source code file is obtained by analyzing a configuration file of the target static library, and the second source code file has the same content as the first source code file;
a reading module configured to perform reading the second source code file based on the second storage path to debug the second source code file.
9. A server, comprising:
a processor;
a memory for storing the processor-executable instructions;
wherein the processor is configured to execute the instructions to implement the source code debugging method of any of claims 1 to 7.
10. A storage medium, wherein instructions in the storage medium, when executed by a processor of a server, enable the server to perform a source code debugging method as claimed in any one of claims 1 to 7.
CN202010930255.3A 2020-09-07 2020-09-07 Source code debugging method, device, server and storage medium Pending CN112052007A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010930255.3A CN112052007A (en) 2020-09-07 2020-09-07 Source code debugging method, device, server and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010930255.3A CN112052007A (en) 2020-09-07 2020-09-07 Source code debugging method, device, server and storage medium

Publications (1)

Publication Number Publication Date
CN112052007A true CN112052007A (en) 2020-12-08

Family

ID=73610164

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010930255.3A Pending CN112052007A (en) 2020-09-07 2020-09-07 Source code debugging method, device, server and storage medium

Country Status (1)

Country Link
CN (1) CN112052007A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113778505A (en) * 2021-07-09 2021-12-10 北京沃东天骏信息技术有限公司 Component processing method and device
CN114398078A (en) * 2022-01-14 2022-04-26 平安壹钱包电子商务有限公司 Component model file conversion method, device, device and storage medium
CN116774988A (en) * 2023-08-16 2023-09-19 易方信息科技股份有限公司 Method and device for releasing frame package mode symbol dependence
CN117194339A (en) * 2022-05-31 2023-12-08 广州视源电子科技股份有限公司 Project deployment method, apparatus and computer readable storage medium
CN118194479A (en) * 2024-05-16 2024-06-14 西安理工大学 Method for optimizing bending resilience of aluminum product in roll bending forming

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109344051A (en) * 2018-08-28 2019-02-15 北京达佳互联信息技术有限公司 Method, apparatus, electronic equipment and the storage medium of data processing
CN109491664A (en) * 2018-11-08 2019-03-19 腾讯科技(深圳)有限公司 Generation method, device, equipment and the storage medium of iOS application program
CN111061638A (en) * 2019-12-16 2020-04-24 上海钧正网络科技有限公司 Method and device for debugging iOS system and server

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109344051A (en) * 2018-08-28 2019-02-15 北京达佳互联信息技术有限公司 Method, apparatus, electronic equipment and the storage medium of data processing
CN109491664A (en) * 2018-11-08 2019-03-19 腾讯科技(深圳)有限公司 Generation method, device, equipment and the storage medium of iOS application program
CN111061638A (en) * 2019-12-16 2020-04-24 上海钧正网络科技有限公司 Method and device for debugging iOS system and server

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈晓露: "《网络资源下载》", vol. 1, 31 January 2010, 北京:中国社会出版社, pages: 109 - 112 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113778505A (en) * 2021-07-09 2021-12-10 北京沃东天骏信息技术有限公司 Component processing method and device
CN114398078A (en) * 2022-01-14 2022-04-26 平安壹钱包电子商务有限公司 Component model file conversion method, device, device and storage medium
CN117194339A (en) * 2022-05-31 2023-12-08 广州视源电子科技股份有限公司 Project deployment method, apparatus and computer readable storage medium
CN116774988A (en) * 2023-08-16 2023-09-19 易方信息科技股份有限公司 Method and device for releasing frame package mode symbol dependence
CN116774988B (en) * 2023-08-16 2024-02-27 易方信息科技股份有限公司 Method and device for releasing frame package mode symbol dependence
CN118194479A (en) * 2024-05-16 2024-06-14 西安理工大学 Method for optimizing bending resilience of aluminum product in roll bending forming
US12280410B1 (en) 2024-05-16 2025-04-22 Xi'an Heavy Equipment & Technology Co., Ltd. Optimization method for bending rebound quantity of aluminum roll forming

Similar Documents

Publication Publication Date Title
CN108027722B (en) Dynamically updating applications in compilation and deployment
US10331425B2 (en) Automated source code adaption to inject features between platform versions
CN112052007A (en) Source code debugging method, device, server and storage medium
US7478366B2 (en) Debugger and method for debugging computer programs across multiple programming languages
US8381175B2 (en) Low-level code rewriter verification
US8645938B2 (en) System and method for replacing code
CN113360156B (en) An IOS compilation method and related equipment
WO2018072493A1 (en) Compiling method and compiling system
Hassan et al. Rudsea: recommending updates of dockerfiles via software environment analysis
JP2005011345A (en) Code segment creating method and system for the same
US20170192756A1 (en) Automatic classification of compilers
US20110126179A1 (en) Method and System for Dynamic Patching Software Using Source Code
CN113590327B (en) Project resource detection method, device, electronic equipment and storage medium
CN113791767B (en) Byte code modification method and device
US20150067653A1 (en) Automatic generation of analysis-equivalent application constructs
CN112099880A (en) Scenario-driven application reduction method and system
US20220291938A1 (en) Compiling a specified instruction from a first virtual application to a second virtual application
CN114816364A (en) Method, device and application for dynamically generating template file based on Swagger
CN114047923A (en) Error code locating method, device, storage medium and electronic device
US9747085B2 (en) Source code generation from prototype source
Liu et al. Reunify: A step towards whole program analysis for react native android apps
US12373203B2 (en) Development environment integrated with infrastructure cost estimation system
CN113110842A (en) Software bytecode homology analysis method, device and equipment
CN110321130A (en) The not reproducible compiling localization method of log is called based on system
Okafor et al. A methodology to transform an OS-based application to a bare machine application

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20201208