CN109344051B - 数据处理的方法、装置、电子设备及存储介质 - Google Patents
数据处理的方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN109344051B CN109344051B CN201810990207.6A CN201810990207A CN109344051B CN 109344051 B CN109344051 B CN 109344051B CN 201810990207 A CN201810990207 A CN 201810990207A CN 109344051 B CN109344051 B CN 109344051B
- Authority
- CN
- China
- Prior art keywords
- module
- debugged
- source code
- storage path
- binary code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3624—Software debugging by performing operations on the source code, e.g. via a compiler
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请是关于一种数据处理的方法、装置、电子设备及存储介质。其中方法包括:根据预先配置的待调试模块的源码的原存储路径以及对应的二进制代码的原存储路径,分别抓取待调试模块的源码和二进制代码;将抓取到的二进制代码进行再编译处理,得到可执行文件;建立可执行文件的路径与抓取到待调试模块的源码后的再存储路径的关联关系;运行可执行文件,并依据关联关系,确定运行的可执行文件对应的源码,以实现对待调试模块的调试。本申请采用待调试的模块的源码和二进制代码间的路径对应关系的设置,节省了以二进制代码引入项目后,需要将二进制代码编译为源码以完成调试花费的编译成本以及时间成本,提高了调试效率。
Description
技术领域
本申请涉及调试技术领域,尤其涉及一种数据处理的方法、装置、电子设备及存储介质。
背景技术
程序调试是通过对源码进行编译以便查找错误及错位发生的位置的过程。一般地,将模块引入项目的方式包括源码引入和二进制引入两种方式。然而,并非所有平台都支持二进制引入方式的调试方法。在不支持二进制引入模块以进行调试的平台,如IOS平台,要实现对二进制代码的调试,需要将二进制代码重新编译为源码,修改引入方式为源码引入再进行调试,但这种方式需要花费大量的编译时间,编译成本较高。
发明内容
为克服相关技术中存在的问题,本申请提供一种数据处理的方法、装置、电子设备及存储介质。
根据本申请实施例的第一方面,提供一种数据处理的方法,包括:
根据预先配置的待调试模块的源码的原存储路径以及对应的二进制代码的原存储路径,分别抓取待调试模块的源码和二进制代码;
将抓取到的二进制代码进行再编译处理,得到可执行文件;
建立可执行文件的路径与抓取到待调试模块的源码后的再存储路径的关联关系;
运行可执行文件,并依据关联关系,确定运行的可执行文件对应的源码,以实现对待调试模块的调试。
进一步,待调试的模块的引入方式为二进制引入。
进一步,在分别抓取待调试模块的源码和二进制代码之前,方法还包括:
获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径。
进一步,获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径之前,方法还包括:
选定待调试模块,在选定的待调试模块不存在二进制代码的原存储路径时,对选定的待调试模块的源码进行编译处理以生成二进制代码,以得到选定的待调试模块的二进制代码的原存储路径。
进一步,获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径之前,方法还包括:
获取同一项目中各个待调试模块的描述信息,以根据描述信息确定获取的各个待调试模块的源码以及二进制代码的版本;
获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径,包括:
根据同一项目中各个待调试模块的源码以及二进制代码的版本,获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径。
根据本申请实施例的第二方面,提供一种数据处理的装置,包括:
代码抓取模块,被配置为根据预先配置的待调试模块的源码的原存储路径以及对应的二进制代码的原存储路径,分别抓取待调试模块的源码和二进制代码;
再编译模块,被配置为将抓取到的二进制代码进行再编译处理,得到可执行文件;
路径关联模块,被配置为建立可执行文件的路径与抓取到待调试模块的源码后的再存储路径的关联关系;
调试处理模块,被配置为运行可执行文件,并依据关联关系,确定运行的可执行文件对应的源码,以实现对待调试模块的调试。
进一步,待调试的模块的引入方式为二进制引入。
进一步,代码抓取模块在分别抓取待调试模块的源码和二进制代码之前,所述装置还包括:
原路径获取模块,被配置为获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径。
进一步,所述原路径获取模块被配置为获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径之前,装置还包括:
选定待调试模块,被配置为选定待调试模块,在选定的待调试模块不存在二进制代码的原存储路径时,对选定的待调试模块的源码进行编译处理以生成二进制代码,以得到选定的待调试模块的二进制代码的原存储路径。
进一步,获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径之前,装置还包括:
版本获取模块,被配置为获取同一项目中各个待调试模块的描述信息,以根据描述信息确定获取的各个待调试模块的源码以及二进制代码的版本;
原路径获取模块,包括:
路径获取单元,被配置为根据同一项目中各个待调试模块的源码以及二进制代码的版本,获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径。
根据本申请实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,处理器被配置为:根据预先配置的待调试模块的源码的原存储路径以及对应的二进制代码的原存储路径,分别抓取待调试模块的源码和二进制代码;将抓取到的二进制代码进行再编译处理,得到可执行文件;建立可执行文件的路径与抓取到待调试模块的源码后的再存储路径的关联关系;运行可执行文件,并依据关联关系,确定运行的可执行文件对应的源码,以实现对待调试模块的调试。
根据本申请实施例的第四方面,提供一种非临时性计算机可读存储介质,当存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行一种数据处理的方法,方法包括:
根据预先配置的待调试模块的源码的原存储路径以及对应的二进制代码的原存储路径,分别抓取待调试模块的源码和二进制代码;
将抓取到的二进制代码进行再编译处理,得到可执行文件;
建立可执行文件的路径与抓取到待调试模块的源码后的再存储路径的关联关系;
运行可执行文件,并依据关联关系,确定运行的可执行文件对应的源码,以实现对待调试模块的调试。
根据本申请实施例的第五方面,提供一种应用程序,包括当应用程序由电子设备的处理器执行时,使得电子设备能够执行一种数据处理的方法,该方法包括:
根据预先配置的待调试模块的源码的原存储路径以及对应的二进制代码的原存储路径,分别抓取待调试模块的源码和二进制代码;
将抓取到的二进制代码进行再编译处理,得到可执行文件;
建立可执行文件的路径与抓取到待调试模块的源码后的再存储路径的关联关系;
运行可执行文件,并依据关联关系,确定运行的可执行文件对应的源码,以实现对待调试模块的调试。
本申请的实施例提供的技术方案可以包括以下有益效果:采用对待调试模块的源码的原存储路径和对应的二进制代码的原存储路径的配置,为抓取待调试模块的源码和二进制代码提供了路径指向,实现了引入待调试模块的目的。通过对获取到的待调试模块的二进制代码的再编译,进而得到可执行文件,以便建立可执行文件的路径与抓取到的待调试模块的源码的再存储路径的关联关系,为运行可执行文件时,依据关联关系确定运行的可执行文件对应的源码,进而实现在对待调试模块的二进制代码调试中,依据关联关系,确定运行的可执行文件对应的源码,实现了查看待调试模块源码的目的,以便完成对待调试模块的debug调试,避免了将待调试模块以二进制引入项目的情形下,需要通过修改引入方式以实现对待调试模块的调试的人工成本,同时,节省了将待调试模块以二进制引入方式引入项目后,需要将二进制代码重新编译为源码以完成调试花费的编译成本以及时间成本,同时,提高了调试效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是根据一示例性实施例示出的一种数据处理的方法的流程图;
图2是根据一示例性实施例示出的一种数据处理的装置的框图;
图3是根据一示例性实施例示出的一种电子设备的框图;
图4是根据一示例性实施例示出的另一种电子设备的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种数据处理的方法的流程图,如图1所示,该数据处理的方法用于电子设备中,包括以下步骤。
在步骤S11中,根据预先配置的待调试模块的源码的原存储路径以及对应的二进制代码的原存储路径,分别抓取待调试模块的源码和二进制代码,
本申请中,待调试模块指的是计算机程序的一个组成部分,能够作为一个整体来处理的程序指令。实际应用时,同一计算机程序,即同一项目,一般是通过模块化开发完成的,因而组成整个项目的待调试模块可以是在同一电子设备开发完成的,也可能是在不同的电子设备开发完成的。实际应用时,对待调试模块进行调试的电子设备与开发完成待调试模块的电子设备可能相同,也可能不同。
应用时,若开发待调试模块的电子设备与调试待调试模块的电子设备相同,待调试模块的源码的原存储路径及对应的二进制代码的原存储路径都在本地,即待调试模块的源码的原存储路径及对应的二进制代码的原存储路径在调试待调试模块的电子设备上;若开发待调试模块的电子设备与调试待调试模块的电子设备不相同,待调试模块的源码的原存储路径及对应的二进制代码的原存储路径则不在本地,即待调试模块的源码的原存储路径及对应的二进制代码的原存储路径不在调试待调试模块的电子设备上。具体地,该电子设备可以为PC机、平板、手机等智能设备。
应用时,对待调试模块进行调试的电子设备可以采用代码包管理工具,如Cocoapods工具,抓取待调试模块的源码及对应的二进制代码,以引入待调试模块。具体地,Cocoapods工具支持源码引入和二进制引入两种引入方式。
本申请中,待调试模块的引入方式为二进制引入。
本申请通过预先配置待调试的模块的源码的原存储路径以及对应的二进制代码的原存储路径,实现了根据待调试的模块的源码的原存储路径以及对应的二进制代码的原存储路径实现同时抓取待调试模块的源码和二进制代码的目的。
在一些实施例中,该步骤在分别抓取待调试模块的源码和二进制代码前,该方法还包括:获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径。
本实施例通过获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径,为预先配置同一项目中各个待调试的模块的源码的原存储路径以及对应的二进制代码的原存储路径提供路径基础,以抓取同一项目中各个待调试模块的源码和对应的二进制代码,以完成对同一项目中各个待调试模块的引入,进而为调试同一项目中各个待调试模块提供代码准备。实现根据预先配置的组成同一个项目的各个待调试模块的源码的原存储路径和二进制代码的原存储路径,同时抓取同一项目中各个待调试模块的源码和二进制代码的目的。
在一些实施例中,获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径之前,方法还包括:选定待调试模块,在选定的待调试模块不存在二进制代码的原存储路径时,对选定的待调试模块的源码进行编译处理以生成二进制代码,以得到选定的待调试模块的二进制代码的原存储路径。
本实施例提供了在同一项目中选定待调试模块后,对选定的待调试模块不存在二进制代码的原存储路径时,对选定的待调试模块的源码进行编译处理以生成二进制代码,以得到选定的待调试模块的二进制代码的原存储路径,保证可以获取到待调试模块的二进制代码的原存储路径,为预先配置组成同一项目的各个待调试模块的源码的原存储路径及对应的二进制代码的原存储路径提供路径准备,保证了根据个待调试模块的源码的原存储路径及对应的二进制代码的原存储路径抓取待调试模块的源码和二进制代码,实现以二进制引入方式引入待调试模块的目的,为后期完成调试提供代码基础。
例如,一个项目由A模块、B模块和C模块组成。下面以电子设备为PC机为例对本申请进行说明。假设A模块、B模块和C模块分别是在PC1、PC2和PC3上开发完成,并假设调试设备为PC1,PC1通过Cocoapods工具抓取待调试模块的源码和二进制代码。在将这三个模块引入PC1前,配置A模块的源码的原存储路径及对应的二进制代码的原存储路径、B模块的源码的原存储路径及对应的二进制代码的原存储路径和C模块的源码的原存储路径及对应的二进制代码的原存储路径。以配置B模块的源码的原存储路径及对应的二进制代码的原存储路径为例进行说明,PC2为开发完成B模块的电子设备,由于B模块在PC2上开发完成时已进行过一次调试,因此,PC2上存在B模块的二进制代码的路径,即B模块的二进制代码的原存储路径。因此,获取到B模块的源码在PC2上的路径(PC2:path1)以及对应的二进制代码在PC2上的路径(PC2:path2),即得到了B模块的源码的原存储路径以及对应的二进制代码的原存储路径,在PC1上运行的Cocoapods工具的配置文件中添加B模块的源码在PC2上的路径(即PC2:path1)以及对应的二进制代码在PC2上的路径(即PC2:path2),完成配置。同理,完成A模块的源码的原存储路径及对应的二进制代码的原存储路径的配置和C模块的的源码的原存储路径及对应的二进制代码的原存储路径的配置。到此,完成A模块、B模块和C模块的配置。具体地,该项目的配置文件中存储有不同待调试模块的源码的原存储路径及对应的二进制代码的原存储路径。例如,PC1上Cocoapods工具根据(PC2:path1)和(PC2:path2)抓取到PC2上B模块的源码和二进制代码。
在一些实施例中,可选的,获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径之前,该方法还包括:获取同一项目中各个待调试模块的描述信息,以根据描述信息确定获取的各个待调试模块的源码以及二进制代码的版本;获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径,包括:根据同一项目中各个待调试模块的源码以及二进制代码的版本,获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径。
应用时,待调试模块的源码及对应的二进制代码可能存在多个版本,不同版本的待调试模块的源码及对应的二进制代码的存储位置不同,为此,本实施例通过获取同一项目中各个待调试模块的描述信息,以根据该描述信息确定各个待调试模块的源码及对应的二进制代码的版本,以便根据该版本确定待调试模块的源码的原存储路径和二进制代码的原存储路径。
在步骤S12中,将抓取到的二进制代码进行再编译处理,得到可执行文件。
具体地,可选的采用Xcode编译工具对抓取到的待调试模块的二进制代码进行再编译处理,再编译为可执行文件,以为调试提供代码准备。
具体地,PC1上Cocoapods工具根据预设的B模块的源码的原存储路径(PC2:path1)和对应的二进制代码的原存储路径(PC2:path2),抓取到B模块的二进制代码后,利用Xcode编译工具进行再编译,生成可执行文件,该可执行文件的存路径为PC1:path2。
需要说明的是,具体地实施时,还可采用其他能够将抓取到的二进制代码编译为可执行文件的编译工具,本申请在此不进行并不进行限定。
在步骤S13中,建立可执行文件的路径与抓取到待调试模块的源码后的再存储路径的关联关系。
应用时,PC1在对抓取到的待调试模块的二进制代码再编译处理,得到可执行文件时,自动构建出该二进制代码的可执行文件的路径,并建立该可执行文件的路径与抓取到本地的源码的路径间的关联关系,具体地,可以采用映射关系,将得到的可执行文件的路径映射到抓取到本地的源码的路径上。
例如,具体地,PC1上Cocoapods工具根据预设的B模块的源码的原存储路径(PC2:path1)和对应的二进制代码的原存储路径(PC2:path2),抓取到B模块的源码后存储到PC1上,存储路径为PC1:path1;抓取到的B模块的二进制代码后,利用Xcode编译工具进行再编译,再编译为可执行文件,该可执行文件的存路径为PC1:path2。本申请通过建立PC1:path2与PC1:path1间的关联关系,实现将可执行文件与抓取到PC1上的B模块的源码的连接,实现在PC1上的一次配置为多人使用的目的,因而无需修改待调试模块的引入方式,从而节省了对引入的二进制代码重新编译消耗的时间成本,为后期运行可执行文件时,实现对待调试模块的调试时查看源码并完成调试。
在步骤S14中,运行可执行文件,并依据关联关系,确定运行的可执行文件对应的源码,以实现对待调试模块的调试。
具体地,电子设备在对待调试模块进行调试时,电子设备直接运行可执行文件,在运行可执行文件的同时,可以依据关联关系确定运行的可执行文件对应的源码,以便程序员可以查看到可执行文件对应的源码,以便根据调试过程中的报错,快速确定错误位置,针对性修改源码。
本申请提供的数据处理的方法以预先配置待调试模块的源码的原存储路径以及对应的二进制代码的原存储路径,为引入待调试模块时,抓取待调试模块的源码及对应的二进制代码提供了路径保证,从而在对抓取到的二进制代码进行再编译处理,得到可执行文件,进而调试待调试模块过程中,通过运行可执行文件确定运行的可执行文件对应的源码,达到查看待调试模块的源码的目的,实在对待调试模块的源码的调试,而无需将二进制代码编译为源码后再进行调试,解决了不支持以二进制引入待调试的模块进行调试的技术问题。同时,由于无需将二进制代码编译为源码,同时也避免了以源码引入二进制代码时导致的编译报错问题,进而提高了调试效率。
图2是根据一示例性实施例示出的一种数据处理的装置框图。参照图2,该装置120包括代码抓取模块121,再编译模块122、路径关联模块123和调试处理模块124。
该代码抓取模块121被配置为根据预先配置的待调试模块的源码的原存储路径以及对应的二进制代码的原存储路径,分别抓取待调试模块的源码和二进制代码;
该再编译模块122被配置为将抓取到的二进制代码进行再编译处理,得到可执行文件;
该路径关联模块123被配置为建立可执行文件的路径与抓取到待调试模块的源码后的再存储路径的关联关系;
该调试处理模块124被配置为运行可执行文件,并依据关联关系,确定运行的可执行文件对应的源码,以实现对待调试模块的调试。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请提供的数据处理的装置以预先配置待调试模块的源码的原存储路径及对应的二进制代码的原存储路径,为抓取待调试模块的源码和对应的二进制代码提供路径基础,从而实现引入待调试模块的目的。为了在调试过程中直接对二进制代码进行处理,本申请将抓取到的二进制代码进行编译处理,编译为可执行的二进制代码,因编译处理后的二进制代码与抓取到本地的源码间的关联关系,调试过程中,可以直接对可执行的二进制代码进行调试处理,同时根据该关联关系将与当前正在调试的二进制代码对应源码提供给用户,以便用户进行查看,而无需将二进制代码编译为源码再进行调试,解决了不支持将待调试的模块以二进制引入项目进行调试的技术问题。同时,由于无需将二进制代码编译为源码,避免了因编译报错而无法进行源码调试的技术问题,进而提高了调试效率。
进一步,待调试模块的引入方式为二进制引入。
进一步,代码抓取模块在分别抓取待调试模块的源码和二进制代码之前,装置还包括:原路径获取模块,被配置为获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径。
本实施例通过获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径的目的,为预先配置组成同一项目各个待调试模块提供了路径准备,实现了在以二进制引入待调试模块时同时抓取待调试模块的源码以及对应的二进制代码,进而为引入的待调试模块的调试提供的代码基础。
更进一步,原路径获取模块被配置为获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径之前,装置还包括:
选定待调试模块,被配置为选定待调试模块,在选定的待调试模块不存在二进制代码的原存储路径时,对选定的待调试模块的源码进行编译处理以生成二进制代码,以得到选定的待调试模块的二进制代码的原存储路径。
进一步,获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径之前,装置还包括:
版本获取模块,被配置为获取同一项目中各个待调试模块的描述信息,以根据描述信息确定获取的各个待调试模块的源码以及二进制代码的版本;
原路径获取模块,包括:
路径获取单元,被配置为根据同一项目中各个待调试模块的源码以及二进制代码的版本,获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径。
图3是根据一示例性实施例示出的一种电子设备300的框图。例如,电子设备300可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图3,电子设备300可以包括以下一个或多个组件:处理组件302,存储器304,电力组件306,多媒体组件308,音频组件310,输入/输出(I/O)的接口312,传感器组件314,以及通信组件316。
处理组件302通常控制电子设备300的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件302可以包括一个或多个处理器320来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件302可以包括一个或多个模块,便于处理组件302和其他组件之间的交互。例如,处理组件302可以包括多媒体模块,以方便多媒体组件308和处理组件302之间的交互。
存储器304被配置为存储各种类型的数据以支持在设备300的操作。这些数据的示例包括用于在电子设备300上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器304可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件306为电子设备300的各种组件提供电力。电源组件306可以包括电源管理系统,一个或多个电源,及其他与为电子设备300生成、管理和分配电力相关联的组件。
多媒体组件308包括在电子设备300和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件308包括一个前置摄像头和/或后置摄像头。当设备300处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件310被配置为输出和/或输入音频信号。例如,音频组件310包括一个麦克风(MIC),当电子设备300处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器304或经由通信组件316发送。在一些实施例中,音频组件310还包括一个扬声器,用于输出音频信号。
I/O接口312为处理组件302和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件314包括一个或多个传感器,用于为电子设备300提供各个方面的状态评估。例如,传感器组件314可以检测到设备300的打开/关闭状态,组件的相对定位,例如组件为电子设备300的显示器和小键盘,传感器组件314还可以检测电子设备300或电子设备300一个组件的位置改变,用户与电子设备300接触的存在或不存在,电子设备300方位或加速/减速和电子设备300的温度变化。传感器组件314可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件314还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件314还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件316被配置为便于电子设备300和其他设备之间有线或无线方式的通信。电子设备300可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件316经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件316还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备300可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行本申请提供的数据处理的方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器304,上述指令可由电子设备300的处理器320执行以完成上述方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图4是根据一示例性实施例示出的另一种电子设备400的框图。例如,电子设备400可以被提供为一服务器。参照图4,电子设备400包括处理组件422,其进一步包括一个或多个处理器,以及由存储器432所代表的存储器资源,用于存储可由处理组件422的执行的指令,例如应用程序。存储器432中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件422被配置为执行指令,以执行本申请提供的调试方法。电子设备400还可以包括一个电源组件426被配置为执行电子设备400的电源管理,一个有线或无线网络接口450被配置为将电子设备400连接到网络,和一个输入输出(I/O)接口458。电子设备400可以操作基于存储在存储器432的操作系统,例如WindowsServerTM,Mac OSXTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本申请还提供一种非临时性计算机可读存储介质,当存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行本申请提供的数据处理的方法,该方法包括:根据预先配置的待调试模块的源码的原存储路径以及对应的二进制代码的原存储路径,分别抓取待调试模块的源码和二进制代码;将抓取到的二进制代码进行再编译处理,得到可执行文件;建立可执行文件的路径与抓取到待调试模块的源码后的再存储路径的关联关系;运行可执行文件,并依据关联关系,确定运行的可执行文件对应的源码,以实现对待调试模块的调试。
本申请提供的存储介质中预先配置待调试模块的源码的原存储路径及对应的二进制代码的原存储路径,为抓取待调试模块的源码和对应的二进制代码提供路径基础,从而实现引入待调试模块的目的。为了在调试过程中直接对二进制代码进行处理,本申请将抓取到的二进制代码进行编译处理,编译为可执行的二进制代码,因编译处理后的二进制代码与抓取到本地的源码间的关联关系,调试过程中,可以直接对可执行的二进制代码进行调试处理,同时根据该关联关系将与当前正在调试的二进制代码对应源码提供给用户,以便用户进行查看,而无需将二进制代码编译为源码再进行调试,解决了不支持将待调试的模块以二进制引入项目进行调试的技术问题。同时,由于无需将二进制代码编译为源码,避免了因编译报错而无法进行源码调试的技术问题,进而提高了调试效率。
该方法中,待调试的模块的引入方式为二进制引入。
进一步,在分别抓取待调试模块的源码和二进制代码之前,方法还包括:
获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径。
进一步,获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径之前,方法还包括:
选定待调试模块,在选定的待调试模块不存在二进制代码的原存储路径时,对选定的待调试模块的源码进行编译处理以生成二进制代码,以得到选定的待调试模块的二进制代码的原存储路径。
进一步,获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径之前,方法还包括:
获取同一项目中各个待调试模块的描述信息,以根据描述信息确定获取的各个待调试模块的源码以及二进制代码的版本;
获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径,包括:
根据同一项目中各个待调试模块的源码以及二进制代码的版本,获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径。
本申请还提供一种应用程序,包括当应用程序由电子设备的处理器执行时,使得电子设备能够执行本申请提供的数据处理的方法,该方法包括:根据预先配置的待调试模块的源码的原存储路径以及对应的二进制代码的原存储路径,分别抓取待调试模块的源码和二进制代码;将抓取到的二进制代码进行再编译处理,得到可执行文件;建立可执行文件的路径与抓取到待调试模块的源码后的再存储路径的关联关系;运行可执行文件,并依据关联关系,确定运行的可执行文件对应的源码,以实现对待调试模块的调试。
该方法中,待调试的模块的引入方式为二进制引入。
本申请提供的应用程序,以预先配置待调试模块的源码的原存储路径以及对应的二进制代码的原存储路径,为抓取待调试模块的源码和对应的二进制代码提供了路径指向,实现了以二进制方式引入待调试模块的目的。为了在调试过程中应用程序可以直接对二进制代码进行处理,应用程序将抓取到的二进制代码进行再编译处理,再编译为可执行文件,因建立了可执行文件与抓取到的待调试模块的源码再存储后路径的关联关系,因而调试过程中,运行可执行文件时,可以确定可执行文件对应的源码,将确定的可执行文件对应的源码提供给用户,以便用户进行查看,而无需将二进制代码编译为源码后再进行调试,解决了不支持将待调试的模块以二进制引入项目进行调试的技术问题。同时,由于无需将二进制代码编译为源码,避免了因编译报错而无法进行源码调试的技术问题,进而提高了调试效率。
该方法中,待调试的模块的引入方式为二进制引入。
进一步,在分别抓取待调试模块的源码和二进制代码之前,方法还包括:
获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径。
进一步,获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径之前,方法还包括:
选定待调试模块,在选定的待调试模块不存在二进制代码的原存储路径时,对选定的待调试模块的源码进行编译处理以生成二进制代码,以得到选定的待调试模块的二进制代码的原存储路径。
进一步,获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径之前,方法还包括:
获取同一项目中各个待调试模块的描述信息,以根据描述信息确定获取的各个待调试模块的源码以及二进制代码的版本;
获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径,包括:
根据同一项目中各个待调试模块的源码以及二进制代码的版本,获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径。
本领域技术人员在考虑说明书及实践这里公开的申请后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (10)
1.一种数据处理的方法,其特征在于,包括:
根据预先配置的待调试模块的源码的原存储路径以及对应的二进制代码的原存储路径,分别抓取所述待调试模块的源码和二进制代码,包括:获取同一项目中各个待调试模块的描述信息,以根据所述描述信息确定获取的各个待调试模块的源码以及二进制代码的版本,根据同一项目中各个待调试模块的源码以及二进制代码的版本,获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径;
将抓取到的二进制代码进行再编译处理,得到可执行文件;
建立所述可执行文件的路径与抓取到所述待调试模块的源码后的再存储路径的关联关系;
运行所述可执行文件,并依据所述关联关系,确定运行的所述可执行文件对应的源码,以实现对所述待调试模块的调试。
2.根据权利要求1所述的数据处理的方法,其特征在于,所述待调试模块的引入方式为二进制引入。
3.根据权利要求2所述的数据处理的方法,其特征在于,在所述分别抓取所述待调试模块的源码和二进制代码之前,所述方法还包括:
获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径。
4.根据权利要求3所述的数据处理的方法,其特征在于,所述获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径之前,所述方法还包括:
选定待调试模块,在选定的待调试模块不存在二进制代码的原存储路径时,对所述选定的待调试模块的源码进行编译处理以生成二进制代码,以得到所述选定的待调试模块的二进制代码的原存储路径。
5.一种数据处理的装置,其特征在于,包括:
代码抓取模块,被配置为根据预先配置的待调试模块的源码的原存储路径以及对应的二进制代码的原存储路径,分别抓取所述待调试模块的源码和二进制代码,包括:获取同一项目中各个待调试模块的描述信息,以根据所述描述信息确定获取的各个待调试模块的源码以及二进制代码的版本,根据同一项目中各个待调试模块的源码以及二进制代码的版本,获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径;
再编译模块,被配置为将抓取到的二进制代码进行再编译处理,得到可执行文件;
路径关联模块,被配置为建立所述可执行文件的路径与抓取到所述待调试模块的源码后的再存储路径的关联关系;
调试处理模块,被配置为运行所述可执行文件,并依据所述关联关系,确定运行的所述可执行文件对应的源码,以实现对所述待调试模块的调试。
6.根据权利要求5所述的数据处理的装置,其特征在于,所述待调试模块的引入方式为二进制引入。
7.根据权利要求5所述的数据处理的装置,其特征在于,所述代码抓取模块在分别抓取所述待调试模块的源码和二进制代码之前,所述装置还包括:
原路径获取模块,被配置为获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径。
8.根据权利要求7所述的数据处理的装置,其特征在于,所述原路径获取模块被配置为获取同一项目中各个待调试模块的源码的原存储路径和二进制代码的原存储路径之前,所述装置还包括:
选定待调试模块,被配置为选定待调试模块,在选定的待调试模块不存在二进制代码的原存储路径时,对所述选定的待调试模块的源码进行编译处理以生成二进制代码,以得到所述选定的待调试模块的二进制代码的原存储路径。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:执行权利要求1至4任一项所述的数据处理的方法。
10.一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行权利要求1至4任一项所述的数据处理的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810990207.6A CN109344051B (zh) | 2018-08-28 | 2018-08-28 | 数据处理的方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810990207.6A CN109344051B (zh) | 2018-08-28 | 2018-08-28 | 数据处理的方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109344051A CN109344051A (zh) | 2019-02-15 |
CN109344051B true CN109344051B (zh) | 2022-03-25 |
Family
ID=65291800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810990207.6A Active CN109344051B (zh) | 2018-08-28 | 2018-08-28 | 数据处理的方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109344051B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110334031B (zh) * | 2019-07-16 | 2023-11-03 | 腾讯科技(深圳)有限公司 | 内存分配代码检测方法、装置、计算机设备及存储介质 |
CN111935622B (zh) * | 2020-08-03 | 2022-02-11 | 深圳创维-Rgb电子有限公司 | 带数字功放电子设备的调试方法、装置、设备及存储介质 |
CN112052007A (zh) * | 2020-09-07 | 2020-12-08 | 北京达佳互联信息技术有限公司 | 源码调试方法、装置、服务器及存储介质 |
CN113778505A (zh) * | 2021-07-09 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 组件处理方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870310A (zh) * | 2014-02-18 | 2014-06-18 | 小米科技有限责任公司 | 程序编译方法及相关装置 |
CN104572425A (zh) * | 2013-10-12 | 2015-04-29 | 上海海尔集成电路有限公司 | 程序调试方法、装置及系统 |
US9459988B2 (en) * | 2013-03-21 | 2016-10-04 | International Business Machines Corporation | Dynamic code switching in debugging process |
US9563536B1 (en) * | 2015-10-19 | 2017-02-07 | International Business Machines Corporation | Performance neutral isolation of runtime discrepancies in binary code |
CN106471476A (zh) * | 2014-06-25 | 2017-03-01 | 微软技术许可有限责任公司 | 用于对经优化代码的编辑并继续以及增强的经优化调试的技术 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9274930B2 (en) * | 2008-12-22 | 2016-03-01 | Microsoft Technology Licensing, Llc | Debugging system using static analysis |
CN103488466B (zh) * | 2012-06-11 | 2017-02-08 | 联想(北京)有限公司 | 用于执行应用程序的方法和装置 |
-
2018
- 2018-08-28 CN CN201810990207.6A patent/CN109344051B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9459988B2 (en) * | 2013-03-21 | 2016-10-04 | International Business Machines Corporation | Dynamic code switching in debugging process |
CN104572425A (zh) * | 2013-10-12 | 2015-04-29 | 上海海尔集成电路有限公司 | 程序调试方法、装置及系统 |
CN103870310A (zh) * | 2014-02-18 | 2014-06-18 | 小米科技有限责任公司 | 程序编译方法及相关装置 |
CN106471476A (zh) * | 2014-06-25 | 2017-03-01 | 微软技术许可有限责任公司 | 用于对经优化代码的编辑并继续以及增强的经优化调试的技术 |
US9563536B1 (en) * | 2015-10-19 | 2017-02-07 | International Business Machines Corporation | Performance neutral isolation of runtime discrepancies in binary code |
Non-Patent Citations (2)
Title |
---|
可执行程序的反编译;雷涛;《中国优秀硕士学位论文全文数据库 信息科技辑》;20050715(第03期);I138-108 * |
无源码情况下动态调试混淆的java程序;lwanttowin;《https://blog.csdn.net/lwanttowin/article/details/80218352》;20180506;1-8 * |
Also Published As
Publication number | Publication date |
---|---|
CN109344051A (zh) | 2019-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109344051B (zh) | 数据处理的方法、装置、电子设备及存储介质 | |
KR101770931B1 (ko) | 통신 모듈 펌웨어와 플러그인 생성 방법, 장치, 프로그램 및 컴퓨터 판독가능한 기록매체 | |
CN104536891B (zh) | 系统测试方法及装置 | |
CN111221559B (zh) | 应用更新方法、装置、存储介质、终端及服务器 | |
CN104539476A (zh) | 数据包获取方法和装置 | |
CN107562500B (zh) | 调试装置、方法及设备 | |
CN111221733A (zh) | 信息处理方法、装置、移动终端及存储介质 | |
CN111538502A (zh) | 安装包的处理方法、装置、电子设备及存储介质 | |
CN111209195A (zh) | 一种生成测试用例的方法及装置 | |
CN110795354A (zh) | 信息处理方法、装置及存储介质 | |
CN109426504A (zh) | 程序的处理方法、装置、电子设备及存储介质 | |
CN109684112A (zh) | 程序文件运行方法、装置、终端及存储介质 | |
CN110851370B (zh) | 程序测试方法及装置、存储介质 | |
CN106293683B (zh) | 一种项目的编译方法及装置 | |
CN111338961A (zh) | 应用调试方法及装置、电子设备及存储介质 | |
CN111596980A (zh) | 一种信息处理方法及装置 | |
CN111459494A (zh) | 一种代码处理方法及装置 | |
CN112631695B (zh) | 一种数据校验方法、装置、电子设备及存储介质 | |
CN114780334A (zh) | 功耗监测方法、功耗监测装置及存储介质 | |
CN110569037B (zh) | 数据写入的方法和装置 | |
CN107193622B (zh) | 代码编译的处理方法、装置及终端 | |
CN109947640B (zh) | 基于回归测试的核心功能覆盖度统计方法及装置 | |
CN109933357B (zh) | 应用程序升级方法及装置 | |
CN113377370B (zh) | 一种文件处理方法、装置、电子设备及存储介质 | |
CN111597106A (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 |