CN111858359A - 可执行文件的工程代码位置获取方法和装置 - Google Patents

可执行文件的工程代码位置获取方法和装置 Download PDF

Info

Publication number
CN111858359A
CN111858359A CN202010718497.6A CN202010718497A CN111858359A CN 111858359 A CN111858359 A CN 111858359A CN 202010718497 A CN202010718497 A CN 202010718497A CN 111858359 A CN111858359 A CN 111858359A
Authority
CN
China
Prior art keywords
code
path information
target
branch
executable file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010718497.6A
Other languages
English (en)
Other versions
CN111858359B (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.)
Zhuhai Baoqu Technology Co Ltd
Original Assignee
Zhuhai Baoqu 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 Zhuhai Baoqu Technology Co Ltd filed Critical Zhuhai Baoqu Technology Co Ltd
Priority to CN202010718497.6A priority Critical patent/CN111858359B/zh
Publication of CN111858359A publication Critical patent/CN111858359A/zh
Application granted granted Critical
Publication of CN111858359B publication Critical patent/CN111858359B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本申请提出一种可执行文件的工程代码位置获取方法和装置,具体实现方案包括:获取可执行文件的程序数据库文件的路径信息;根据路径信息中获取可执行文件的代码版本号和目标代码分支编号;根据代码版本号和目标代码分支编号,获取目标代码分支编号对应的目标分支子文件路径信息;根据目标分支子文件路径信息获取可执行文件的工程代码位置。由此,可以基于可执行文件快速定位工程代码位置,解决了工程中分支和版本较多,导致可执行文件难以追溯的技术问题。

Description

可执行文件的工程代码位置获取方法和装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种可执行文件的工程代码位置获取方法和装置。
背景技术
随着计算机技术的发展,各种应用程序的功能也愈发多样化,在对应用程序开发时,为了实现多样化的功能,存在大量可执行文件。
相关技术中,通过口口相传或者经验文档,来确定每个可执行文件在开发应用程序的工程中的工程代码位置,其中,该工程代码位置可以理解为可执行文件的代码位置等,这种工程代码位置的确定方式效率较低。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的目的在于提出一种可执行文件的工程代码位置获取方法和装置,基于可执行文件快速定位工程代码位置,解决了工程中分支和版本较多,导致可执行文件难以追溯的技术问题。
为达到上述目的,本申请第一方面实施例提出的可执行文件的工程代码位置获取方法,包括:获取可执行文件的程序数据库文件的路径信息;根据所述路径信息获取所述可执行文件的代码版本号和目标代码分支编号;根据所述代码版本号和所述目标代码分支编号,获取所述目标代码分支编号对应的目标分支子文件路径信息;根据所述目标分支子文件路径信息获取所述可执行文件的工程代码位置。
本申请第二方面实施例提出的可执行文件的工程代码位置获取装置,包括:
第一获取模块,用于获取可执行文件的程序数据库文件的路径信息;第二获取模块,用于根据所述路径信息获取所述可执行文件的代码版本号和目标代码分支编号;
第三获取模块,用于根据所述代码版本号和所述目标代码分支编号,获取所述目标代码分支编号对应的目标分支子文件路径信息;第四获取模块,用于根据所述目标分支子文件路径信息获取所述可执行文件的工程代码位置。
为达到上述目的,本申请第三方面实施例提出的电子设备,包括:处理器,存储器,电源电路,多媒体组件,音频组件,输入/输出(I/O)的接口,传感器组件,以及通信组件;其中,电路板安置在壳体围成的空间内部,所述处理器和所述存储器设置在所述电路板上;所述电源电路,用于为所述电子设备的各个电路或器件供电;所述存储器用于存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行:
获取可执行文件的程序数据库文件的路径信息;
根据所述路径信息获取所述可执行文件的代码版本号和目标代码分支编号;
根据所述代码版本号和所述目标代码分支编号,获取所述目标代码分支编号对应的目标分支子文件路径信息;
根据所述目标分支子文件路径信息获取所述可执行文件的工程代码位置。
为达到上述目的,本申请第四方面实施例提出的非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器被执行时,使得电子设备能够执行一种可执行文件的工程代码位置获取方法,所述方法包括:
获取可执行文件的程序数据库文件的路径信息;
根据所述路径信息获取所述可执行文件的代码版本号和目标代码分支编号;
根据所述代码版本号和所述目标代码分支编号,获取所述目标代码分支编号对应的目标分支子文件路径信息;
根据所述目标分支子文件路径信息获取所述可执行文件的工程代码位置。
为达到上述目的,本申请第五方面实施例提出的计算机程序产品,当所述计算机程序产品中的指令由处理器执行时,执行一种可执行文件的工程代码位置获取方法,所述方法包括:
获取可执行文件的程序数据库文件的路径信息;
根据所述路径信息获取所述可执行文件的代码版本号和目标代码分支编号;
根据所述代码版本号和所述目标代码分支编号,获取所述目标代码分支编号对应的目标分支子文件路径信息;
根据所述目标分支子文件路径信息获取所述可执行文件的工程代码位置。
本申请提出的技术方案,至少具有如下有益技术效果:
获取可执行文件的程序数据库文件的路径信息,根据路径信息获取可执行文件的代码版本号和目标代码分支编号,根据代码版本号和目标代码分支编号,获取目标代码分支编号对应的目标分支子文件路径信息,最后,根据目标分支子文件路径信息获取可执行文件的工程代码位置。由此,可以基于可执行文件快速定位工程代码位置,解决了工程中分支和版本较多,导致可执行文件难以追溯的技术问题。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本申请一实施例提出的可执行文件的的开发场景示意图;
图2为本申请实施例可执行文件所在的工程项目文件结构示意图;
图3是本申请一实施例提出的可执行文件的工程代码位置获取方法的流程示意图;
图4是本申请一实施例提出的可执行文件的工程代码位置获取装置的结构示意图;
图5是本申请实施例的一个电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。相反,本申请的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
为了解决上述背景技术中提到的,可执行文件的工程代码位置追溯困难的技术问题,本申请提出一种可由可执行文件定位出对应的工程代码位置的方案。
在对本申请的可执行文件的工程代码位置获取方法和装置进行说明之前,首先对本申请涉及到的技术名词进行解释,解释如下:
可执行文件(Portable Executable,PE),为可移植的可执行的文件,常见的EXE、DLL、OCX、SYS、COM都是PE文件,PE文件是微软Windows操作系统上的程序文件(可能是间接被执行,如DLL)。
程序数据库文件(Program Database File,PDB),PDB文件是在编译工程的时候产生的,它是和对应的PE文件一起生成出来的,可以理解为PE文件的代码对应的路径等。
开放源代码的版本控制系统(Subversion,SVN),是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。
如图1所示,在SVN体制下,有多个开发人员从存储应用程序的开发代码的服务器下载代码,并上传对应的编写后的代码。其中,为了便于管理,如图2所示,SVN中除了包含主干外还包括多个分支,每个分支包括一些阶段性的release版本,这些版本是可以继续进行开发和维护的,则放在分支的目录中。又比如为不同用户客制化的版本,也可以放在分支中进行开发。
比如,一个应用程序的工程项目有main.cpp,common.h两个文件,假设目前在开发的是最新的3.0版本,而且1.0/2.0版本也在进行维护,那么SVN的项目控制系统的项目树将类似如下样子:
project
--trunk(主干)
-----main.cpp(3.0版本的最新文件)
-----common.h
--branches(分支)
--r1.0
----main.cpp(1.x版本的最新文件)
----common.h
--r2.0
----main.cpp(2.x版本的最新文件)
----common.h
--tags(此目录只读)
--r1.0
----main.cpp(1.0版本的发布文件)
----common.h
--r1.1
----main.cpp(1.1版本的发布文件)
----common.h
--r1.2
----main.cpp(1.2版本的发布文件)
----common.h
--r1.3
----main.cpp(1.3版本的发布文件)
----common.h
--r2.0
----main.cpp(2.0版本的发布文件)
----common.h
--r2.1
----main.cpp(2.1版本的发布文件)
----common.h
下面参考附图描述本申请实施例的可执行文件的工程代码位置获取方法。如图3所示,该方法包括:
步骤101,获取可执行文件的程序数据库文件的路径信息。
应当理解的是,本申请中的可执行文件是外网可执行文件,是发布出去的使用版本。
在执行过程中,当构建可执行文件时,对应的程序数据库文件的路径信息打包到对应的可执行文件的调试信息字段中,因此,可以根据可执行文件获取对应的程序数据库文件的路径信息。
步骤102,根据路径信息获取可执行文件的代码版本号和目标代码分支编号。
在本实施例中,根据SVN工具来进行开发工程项目,其中,在本申请的一个实施例中,在编写可执行文件的执行代码时,在路径信息中的第一预设数据位写入可执行文件对应的代码版本号,其中,该第一预设数据位可以是应用信息块,或者,排序信息块对应的数据位等,在路径信息中的第二预设数据位写入可执行文件对应的目标代码分支编号,其中,该第二预设数据位可以是应用信息块,或者,排序信息块对应的数据位等。
进而,在实际执行中,可以从路径信息中的第一预设数据位读取代码版本号,从路径信息中的第二预设数据位读取目标代码分支编号。
举例而言,PE文件的相对路径为\\10.12.0.25\DubaTest\KIS\DailyBuild\kis_engine_1509_dev_fb\inc\20200612.373952\diffdata\kcleaner.dll,根据该相对路径获取到的PDB路径信息为e:\KINGSOFT_DUBA\Build\Build_Src\kisengine\kis_engine_1509_dev_fb\product\win32\dbginfo\kcleaner.pdb,根据该PDB路径信息得到的主干和分支的路径为“kisengine\kis_engine_1509_dev_fb”,对应的代码版本号为“{'FileVersion':'2020,06,12,5','ProductVersion':'9,3,373952,5'}”。对应的目标代码分支编号为“373952”。
步骤103,根据代码版本号和目标代码分支编号,获取目标代码分支编号对应的目标分支子文件路径信息。
在本实施例中,在获取到代码版本号和目标代码分支编号后,可以目标代码分支编号对应的目标分支子文件路径信息,该目标代码分支编号对应的目标分支子文件路径信息对应于对应分支下的目标子文件。
举例而言,当获取到的目标代码分支编号为373952,则获取目标代码分支编号对应的目标分支子文件路径信息为:
A tempdir\kisengine\kis_engine_1509_dev_fb\373952\increment\getdata.list;
A tempdir\kisengine\kis_engine_1509_dev_fb\373952\increment\solutionfile.list;
A tempdir\kisengine\kis_engine_1509_dev_fb\373952\increment\signfile.list;
A tempdir\kisengine\kis_engine_1509_dev_fb\373952\increment\deldir.list。
在本申请的一个实施例中,可以在版本控制系统中查询代码版本号对应的项目树,在项目树中获取与目标代码分支编号对应的目标分支子文件路径信息,即在项目树中根据目标分支子节点进过的路径确定出对应的目标分支子文件路径信息。
步骤104,根据目标分支子文件路径信息获取可执行文件的工程代码位置。
具体的,在获取到目标分支子文件路径信息后,该目标分支子文件路径信息确定出对应的可执行文件的工程代码位置,该工程代码位置可以理解为可执行文件对应的工程代码位置,比如,根据上述实施例中的目标分支子文件路径信息,得到的工程代码位置为src\sysopt\kcleaner\kcleaner.vcproj,/t:rebuild/p:Configuration=Release,msbuild.exe。
在本申请的一个实施例中,svn在构建可执行文件的目标分支子文件时,配置可执行文件的工程代码位置信息,从而,在版本控制系统中获取与目标分支子文件路径信息对应的配置文件信息,分析配置文件信息获取工程代码位置。
由此,对可执行文件的管理带来便利,避免找不到工程代码位置的情况。避免不同分支,或者同一分支不同渠道文件难以确定哪里编译出来的问题。
综上,本申请实施例的可执行文件的工程代码位置获取方法,获取可执行文件的程序数据库文件的路径信息,根据路径信息获取可执行文件的代码版本号和目标代码分支编号,根据代码版本号和目标代码分支编号,获取目标代码分支编号对应的目标分支子文件路径信息,最后,根据目标分支子文件路径信息获取可执行文件的工程代码位置。由此,可以基于可执行文件快速定位工程代码位置,解决了工程中分支和版本较多,导致可执行文件难以追溯的技术问题。
为了实现上述实施例,本申请还提出了一种可执行文件的工程代码位置获取装置。图4是根据本申请一个实施例的可执行文件的工程代码位置获取装置的结构示意图,如图4所示,该可执行文件的工程代码位置获取装置包括:第一获取模块410、第二获取模块420、第三获取模块430和第四获取模块440,其中,
第一获取模块410,用于获取可执行文件的程序数据库文件的路径信息;
第二获取模块420,用于根据路径信息获取可执行文件的代码版本号和目标代码分支编号;
第三获取模块430,用于根据代码版本号和目标代码分支编号,获取目标代码分支编号对应的目标分支子文件路径信息;
第四获取模块440,用于根据目标分支子文件路径信息获取可执行文件的工程代码位置。
在本申请的一个实施例中,第二获取模块420,具体用于:
在编写可执行文件的执行代码时,在路径信息中的第一预设数据位写入可执行文件对应的代码版本号;
在路径信息中的第二预设数据位写入可执行文件对应的目标代码分支编号。
在本实施例中,第三获取模块430,具体用于:
从路径信息中的第一预设数据位读取代码版本号;
从路径信息中的第二预设数据位读取目标代码分支编号。
在本申请的一个实施例中,第三获取模块430,具体用于:
获取与代码版本号对应的数据包,其中,数据包中包括代码版本号下所有代码分支编号和与每个代码分支编号对应的分支子文件路径信息;
查询数据包,获取与目标代码分支编号对应的目标分支子文件路径信息。
在本申请的一个实施例中,第三获取模块430,具体用于:
在版本控制系统中查询代码版本号对应的项目树,在项目树中获取与目标代码分支编号对应的目标分支子文件路径信息。
在本申请的一个实施例中,第四获取模块440,具体用于:
在版本控制系统中获取与目标分支子文件路径信息对应的配置文件信息;
解析配置文件信息获取工程代码位置。
需要说明的是,前述对方法实施例的解释说明,也适用于本申请实施例的装置,其实现原理类似,在此不再赘述。
综上,本申请实施例的可执行文件的工程代码位置获取装置,获取可执行文件的程序数据库文件的路径信息,根据路径信息获取可执行文件的代码版本号和目标代码分支编号,根据代码版本号和目标代码分支编号,获取目标代码分支编号对应的目标分支子文件路径信息,最后,根据目标分支子文件路径信息获取可执行文件的工程代码位置。由此,可以基于可执行文件快速定位工程代码位置,解决了工程中分支和版本较多,导致可执行文件难以追溯的技术问题。
本申请实施例还提供了一种电子设备,参见图5,电子设备500可以包括以下一个或多个组件:处理器501,存储器502,电源电路503,多媒体组件504,音频组件505,输入/输出(I/O)的接口506,传感器组件507,以及通信组件508。
电源电路503,用于为电子设备的各个电路或器件供电;存储器502用于存储可执行程序代码;处理器501通过读取存储器502中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行以下步骤:
获取可执行文件的程序数据库文件的路径信息;
根据所述路径信息获取所述可执行文件的代码版本号和目标代码分支编号;
根据所述代码版本号和所述目标代码分支编号,获取所述目标代码分支编号对应的目标分支子文件路径信息;
根据所述目标分支子文件路径信息获取所述可执行文件的工程代码位置。
需要说明的是,前述图1-图4实施例中对可执行文件的工程代码位置获取方法实施例的解释说明也适用于该实施例的电子设备500,其实现原理类似,此处不再赘述。
为了实现上述实施例,本申请还提出一种非临时性计算机可读存储介质,当存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行一种可执行文件的工程代码位置获取方法,方法包括:
获取可执行文件的程序数据库文件的路径信息;
根据所述路径信息获取所述可执行文件的代码版本号和目标代码分支编号;
根据所述代码版本号和所述目标代码分支编号,获取所述目标代码分支编号对应的目标分支子文件路径信息;
根据所述目标分支子文件路径信息获取所述可执行文件的工程代码位置。
为了实现上述实施例,本申请还提出一种计算机程序产品,当计算机程序产品中的指令被处理器执行时,执行一种可执行文件的工程代码位置获取方法,方法包括:
获取可执行文件的程序数据库文件的路径信息;
根据所述路径信息获取所述可执行文件的代码版本号和目标代码分支编号;
根据所述代码版本号和所述目标代码分支编号,获取所述目标代码分支编号对应的目标分支子文件路径信息;
根据所述目标分支子文件路径信息获取所述可执行文件的工程代码位置。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (10)

1.一种可执行文件的工程代码位置获取方法,其特征在于,所述方法包括:
获取可执行文件的程序数据库文件的路径信息;
根据所述路径信息获取所述可执行文件的代码版本号和目标代码分支编号;
根据所述代码版本号和所述目标代码分支编号,获取所述目标代码分支编号对应的目标分支子文件路径信息;
根据所述目标分支子文件路径信息获取所述可执行文件的工程代码位置。
2.如权利要求1所述的方法,其特征在于,在所述根据所述路径信息获取所述可执行文件的代码版本号和目标代码分支编号之前,还包括:
在所述路径信息中的第一预设数据位写入所述可执行文件对应的代码版本号;
在所述路径信息中的第二预设数据位写入所述可执行文件对应的目标代码分支编号。
3.如权利要求2所述的方法,其特征在于,根据所述路径信息获取所述可执行文件的代码版本号和目标代码分支编号,包括:
从所述路径信息中的所述第一预设数据位读取所述代码版本号;
从所述路径信息中的所述第二预设数据位读取所述目标代码分支编号。
4.如权利要求1所述的方法,其特征在于,所述根据所述代码版本号和所述目标代码分支编号,获取所述目标代码分支编号对应的目标分支子文件路径信息,包括:
获取与所述代码版本号对应的数据包,其中,所述数据包中包括所述代码版本号下所有代码分支编号和与每个所述代码分支编号对应的分支子文件路径信息;
查询所述数据包,获取与所述目标代码分支编号对应的所述目标分支子文件路径信息。
5.如权利要求1所述的方法,其特征在于,所述根据所述代码版本号和所述目标代码分支编号,获取所述目标代码分支编号对应的目标分支子文件路径信息,包括:
在版本控制系统中查询所述代码版本号对应的项目树,在所述项目树中获取与所述目标代码分支编号对应的目标分支子文件路径信息。
6.如权利要求1所述的方法,其特征在于,所述根据所述目标分支子文件路径信息获取所述可执行文件的工程代码位置,包括:
在版本控制系统中获取与所述目标分支子文件路径信息对应的配置文件信息;
解析所述配置文件信息获取所述工程代码位置。
7.一种可执行文件的工程代码位置获取装置,其特征在于,包括:
第一获取模块,用于获取可执行文件的程序数据库文件的路径信息;
第二获取模块,用于根据所述路径信息获取所述可执行文件的代码版本号和目标代码分支编号;
第三获取模块,用于根据所述代码版本号和所述目标代码分支编号,获取所述目标代码分支编号对应的目标分支子文件路径信息;
第四获取模块,用于根据所述目标分支子文件路径信息获取所述可执行文件的工程代码位置。
8.一种电子设备,其特征在于,包括以下一个或多个组件:处理器,存储器,电源电路,多媒体组件,音频组件,输入/输出(I/O)的接口,传感器组件,以及通信组件;其中,电路板安置在壳体围成的空间内部,所述处理器和所述存储器设置在所述电路板上;所述电源电路,用于为所述电子设备的各个电路或器件供电;所述存储器用于存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行:
获取可执行文件的程序数据库文件的路径信息;
根据所述路径信息获取所述可执行文件的代码版本号和目标代码分支编号;
根据所述代码版本号和所述目标代码分支编号,获取所述目标代码分支编号对应的目标分支子文件路径信息;
根据所述目标分支子文件路径信息获取所述可执行文件的工程代码位置。
9.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一项所述的可执行文件的工程代码位置获取方法。
10.一种计算机程序产品,当所述计算机程序产品中的指令由处理器执行时,执行一种可执行文件的工程代码位置获取方法,所述方法包括:
获取可执行文件的程序数据库文件的路径信息;
根据所述路径信息获取所述可执行文件的代码版本号和目标代码分支编号;
根据所述代码版本号和所述目标代码分支编号,获取所述目标代码分支编号对应的目标分支子文件路径信息;
根据所述目标分支子文件路径信息获取所述可执行文件的工程代码位置。
CN202010718497.6A 2020-07-23 2020-07-23 可执行文件的工程代码位置获取方法和装置 Active CN111858359B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010718497.6A CN111858359B (zh) 2020-07-23 2020-07-23 可执行文件的工程代码位置获取方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010718497.6A CN111858359B (zh) 2020-07-23 2020-07-23 可执行文件的工程代码位置获取方法和装置

Publications (2)

Publication Number Publication Date
CN111858359A true CN111858359A (zh) 2020-10-30
CN111858359B CN111858359B (zh) 2024-01-30

Family

ID=72950456

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010718497.6A Active CN111858359B (zh) 2020-07-23 2020-07-23 可执行文件的工程代码位置获取方法和装置

Country Status (1)

Country Link
CN (1) CN111858359B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113656606A (zh) * 2021-08-05 2021-11-16 上海钧正网络科技有限公司 应用程序的代码查询方法、装置、设备及存储介质
CN113760384A (zh) * 2021-01-04 2021-12-07 北京沃东天骏信息技术有限公司 应用环境切换方法、装置、计算机系统和可读存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1704908A (zh) * 2004-05-26 2005-12-07 华为技术有限公司 定位程序异常的方法
CN101470620A (zh) * 2007-12-29 2009-07-01 珠海金山软件股份有限公司 Pe文件源代码一致性的判定方法及装置
US20100265823A1 (en) * 2009-04-17 2010-10-21 Research In Motion Limited Mechanisms For Evolved Packet System Quality of Service Class Identifier Extension
CN102495736A (zh) * 2011-12-19 2012-06-13 曙光信息产业(北京)有限公司 一种在可执行文件中标识软件代码svn版本的方法和系统
CN105488405A (zh) * 2014-12-25 2016-04-13 哈尔滨安天科技股份有限公司 一种基于pdb调试信息的恶意代码分析方法及系统
US20160299835A1 (en) * 2015-04-08 2016-10-13 Opshub, Inc. Method and system for providing delta code coverage information
CN106547572A (zh) * 2016-12-06 2017-03-29 恒生电子股份有限公司 一种程序文件对比方法及装置
WO2019180675A1 (en) * 2018-03-22 2019-09-26 Trulyprotect Oy Systems and methods for hypervisor-based protection of code
CN110442519A (zh) * 2019-07-23 2019-11-12 深圳市六度人和科技有限公司 一种崩溃文件处理方法、装置、电子设备及存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1704908A (zh) * 2004-05-26 2005-12-07 华为技术有限公司 定位程序异常的方法
CN101470620A (zh) * 2007-12-29 2009-07-01 珠海金山软件股份有限公司 Pe文件源代码一致性的判定方法及装置
US20100265823A1 (en) * 2009-04-17 2010-10-21 Research In Motion Limited Mechanisms For Evolved Packet System Quality of Service Class Identifier Extension
CN102495736A (zh) * 2011-12-19 2012-06-13 曙光信息产业(北京)有限公司 一种在可执行文件中标识软件代码svn版本的方法和系统
CN105488405A (zh) * 2014-12-25 2016-04-13 哈尔滨安天科技股份有限公司 一种基于pdb调试信息的恶意代码分析方法及系统
US20160299835A1 (en) * 2015-04-08 2016-10-13 Opshub, Inc. Method and system for providing delta code coverage information
CN106547572A (zh) * 2016-12-06 2017-03-29 恒生电子股份有限公司 一种程序文件对比方法及装置
WO2019180675A1 (en) * 2018-03-22 2019-09-26 Trulyprotect Oy Systems and methods for hypervisor-based protection of code
CN110442519A (zh) * 2019-07-23 2019-11-12 深圳市六度人和科技有限公司 一种崩溃文件处理方法、装置、电子设备及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BRENT SCHIESTL: "What Is a Branch?", pages 1 - 8, Retrieved from the Internet <URL:《https://www.perforce.com/blog/vcs/what-is-version-control》> *
王梓晗: "勒索软件追踪溯源技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, pages 139 - 104 *
车臣: "VC++ 利用PDB和dump文件定位问题并进行调试", pages 1 - 6, Retrieved from the Internet <URL:《https://blog.csdn.net/zfs_kuai/article/details/43646665》> *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113760384A (zh) * 2021-01-04 2021-12-07 北京沃东天骏信息技术有限公司 应用环境切换方法、装置、计算机系统和可读存储介质
CN113656606A (zh) * 2021-08-05 2021-11-16 上海钧正网络科技有限公司 应用程序的代码查询方法、装置、设备及存储介质
CN113656606B (zh) * 2021-08-05 2024-06-07 上海钧正网络科技有限公司 应用程序的代码查询方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN111858359B (zh) 2024-01-30

Similar Documents

Publication Publication Date Title
US9111033B2 (en) Compiling source code for debugging with user preferred snapshot locations
US9201632B2 (en) Systems and methods for incremental software development
CN107632828B (zh) 多dts文件支持方法、编译装置及嵌入式设备
US9811446B2 (en) Method and apparatus for providing test cases
US8464228B2 (en) Binary library
US9645911B2 (en) System and method for debugging firmware/software by generating trace data
US8881115B2 (en) Compiling source code for debugging with expanded snapshots
US8910126B2 (en) Compiling source code for debugging with variable value restoration based on debugging user activity
US20110126179A1 (en) Method and System for Dynamic Patching Software Using Source Code
US9104804B2 (en) Method and system for invoking just-in-time debugger
WO2016026328A1 (zh) 一种信息处理方法、装置及计算机存储介质
CN112882718B (zh) 编译处理方法、装置、设备及存储介质
CN111858359A (zh) 可执行文件的工程代码位置获取方法和装置
US8533683B2 (en) Stack walking enhancements using sensorpoints
US20120030667A1 (en) Packaging an application
CN116340074B (zh) 硬件在环测试系统和多核处理器片上系统的测试方法
CN110737437A (zh) 一种基于代码集成的编译方法和装置
CN110990051B (zh) 软件包依赖关系的维护方法、装置、介质和设备
CN112052037A (zh) 一种应用软件开发方法、装置、设备及介质
KR102165747B1 (ko) 보안성을 고려한 경량 크래시 리포트 기반 디버깅 방법
CN113407932B (zh) 一种渠道标识的上报方法、系统及存储介质
CN110674024B (zh) 电子设备集成测试系统及其方法
US20110246966A1 (en) Embedding source files into program symbol files
Chow Intermediate representation: The increasing significance of intermediate representations in compilers
CN110737438A (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