一种基于代码版本管理软件的程序崩溃源码调试方法技术

技术编号:39434851 阅读:11 留言:0更新日期:2023-11-19 16:18
本发明专利技术涉及基于代码版本管理软件的程序崩溃源码调试方法,属于计算机信息处理技术领域,解决现有程序崩溃、本地代码版本与崩溃的程序版本不一致时,不能根据转储文件直接定位到崩溃的源代码行从而导致定位代码错误效率低的问题。该方法包括:基于源代码版本信息、仓库地址、文件目录、存放路径、下载命令以及本地代码路径创建源代码信息脚本;基于下载命令创建源代码下载脚本;基于转储文件获取符号文件;基于转储文件、符号文件、源代码信息脚本、源代码下载脚本实现崩溃源代码定位。该方法可有效解决本地代码版本与崩溃的程序版本不一致时不能直接定位到崩溃的源代码行的问题;可快速追踪到对应的代码错误进行分析,提高程序开发的工作效率。开发的工作效率。开发的工作效率。

【技术实现步骤摘要】
一种基于代码版本管理软件的程序崩溃源码调试方法


[0001]本专利技术涉及计算机信息处理
,尤其涉及一种基于代码版本管理软件的程序崩溃源码调试方法。

技术介绍

[0002]软件是新一代信息技术的灵魂,引领新一轮科技创新的突破。
[0003]软件产品是向用户提供的计算机软件或在提供设备、技术服务时提供的计算机软件。为了提高软件产品的稳定性,一般在软件程序崩溃时会生成转储文件。对于每个发布的软件版本都需要保存对应的符号文件,一旦程序崩溃,可以通过转储文件获取对应的符号文件,再通过符号文件追踪代码错误。在软件开发中,软件源代码通常通过代码版本管理软件进行管理。当本地代码版本与崩溃的程序版本不一致时,就不能根据符号文件直接定位到崩溃的源代码行,只能看到程序崩溃处的汇编代码。要想定位到崩溃的源代码行,需要获取代码版本管理软件中与崩溃的程序版本对应的版本号,手动从代码版本管理软件下载对应的源代码,在调试器内设置源代码文件路径,才能定位到崩溃的源代码行。这种手动回溯代码的方法费时费力,影响了定位代码错误的效率,不利于快速分析解决问题。

技术实现思路

[0004]鉴于上述的分析,本专利技术旨在提供一种基于代码版本管理软件的程序崩溃源码调试方法,用以解决现有程序崩溃、本地代码版本与崩溃的程序版本不一致时,不能根据转储文件直接定位到崩溃的源代码行从而导致定位代码错误效率低的问题。
[0005]本专利技术提供了一种基于代码版本管理软件的程序崩溃源码调试方法,所述方法包括以下步骤:
[0006]基于源代码版本信息、仓库地址、文件目录、存放路径、下载命令以及本地代码路径创建源代码信息脚本;
[0007]基于下载命令创建源代码下载脚本;
[0008]基于转储文件获取符号文件;
[0009]基于符号文件、源代码信息脚本、源代码下载脚本实现崩溃源代码定位。
[0010]进一步的,基于源代码版本信息、仓库地址、文件目录、存放路径、下载命令以及本地代码路径创建源代码信息脚本包括:
[0011]获取源代码版本信息、仓库地址、文件目录以及本地代码路径;
[0012]根据符号文件中的源代码文件查询表,为每个标记的源代码文件生成特征参数;
[0013]指定源代码下载后的存放路径;
[0014]创建下载命令。
[0015]进一步的,所述符号文件包括源代码信息、调试信息、源代码文件查询表;所述源代码信息包括源代码的函数名、变量名以及与之对应的内存地址;所述调试信息包括行号信息、堆栈跟踪信息;所述源代码文件查询表包括源代码文件的绝对路径、哈希值。
[0016]进一步的,根据符号文件中的源代码文件查询表,为每个标记的源代码文件生成特征参数包括:
[0017]获取符号文件中的源代码文件查询表;
[0018]遍历所述查询表中的源代码文件,如果该文件路径在本地代码路径中存在,则对该文件进行标记;
[0019]对每个标记的源代码文件生成下载所需的特征参数。
[0020]进一步的,所述特征参数包括:
[0021]源代码文件存放路径、仓库地址、版本对应的key值。
[0022]进一步的,通过配置特征参数创建下载命令。
[0023]进一步的,基于下载命令创建源代码下载脚本包括:
[0024]输入下载命令创建源代码下载脚本,所述脚本通过命令行文件传输工具将源代码下载到所述存放路径。
[0025]进一步的,每个软件版本有对应的符号文件,将源代码版本信息、仓库地址写入符号文件,符号文件随软件版本发布存放于服务器。
[0026]进一步的,基于转储文件获取符号文件包括:
[0027]将转储文件加载至调试器;
[0028]基于转储文件获取对应的符号文件的版本信息和绝对路径;
[0029]如果本地代码路径中不存在符号文件或者符号文件的版本与转储文件对应的符号文件的版本不一致,则从服务器下载对应的符号文件至本地代码路径。
[0030]进一步的,基于转储文件、符号文件、源代码信息脚本、源代码下载脚本实现崩溃源代码定位包括:
[0031]调用源代码信息脚本;
[0032]若所述源代码文件查询表中的源代码文件与本地代码文件一致,则加载本地代码文件;
[0033]若所述源代码文件查询表中的源代码文件不存在或与本地代码文件哈希值不相同,则调用源代码下载脚本将该文件下载至本地代码路径并加载该文件;
[0034]根据转储文件得到崩溃的信息;
[0035]根据符号文件中的源代码信息和调试信息得到对应的崩溃代码的行号实现源代码定位。
[0036]与现有技术相比,本专利技术至少可实现如下有益效果之一:
[0037]1、当程序崩溃、本地代码版本与崩溃的程序版本不一致时,可以根据转储文件自动获得符号文件,并根据符号文件自动下载对应版本的源代码,从而直接定位到崩溃的源代码行,无需手动操作,提高了定位代码错误的效率,有利于快速分析解决问题。
[0038]2、根据符号文件自动下载对应版本的源代码,不会出现代码版本错误的问题,减少了干扰因素,有利于分析解决问题。
[0039]3、支持多种代码版本管理软件,源代码信息脚本可以根据不同的代码版本管理软件自动选择相应的命令写入符号文件,提高了脚本的适应性、可用性。
[0040]本专利技术中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本专利技术的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而
易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。
附图说明
[0041]附图仅用于示出具体实施例的目的,而并不认为是对本专利技术的限制,在整个附图中,相同的参考符号表示相同的部件。
[0042]图1为本专利技术实施例基于代码版本管理软件的程序崩溃源码调试方法的流程图。
[0043]图2为本专利技术实施例调试器提示下载对应的源代码文件。
[0044]图3为本专利技术实施例调试器实现源代码定位。
[0045]图4为本专利技术实施例工作流程示意图。
具体实施方式
[0046]下面结合附图来具体描述本专利技术的优选实施例,其中,附图构成本申请一部分,并与本专利技术的实施例一起用于阐释本专利技术的原理,并非用于限定本专利技术的范围。
[0047]本专利技术的一个具体实施例,公开了一种基于代码版本管理软件的程序崩溃源码调试方法,如图1所示,该方法包括以下步骤:
[0048]步骤S11、基于源代码版本信息、仓库地址、文件目录、存放路径、下载命令以及本地代码路径创建源代码信息脚本。
[0049]步骤S12、基于下载命令创建源代码下载脚本。
[0050]步骤S13、基于转储文件获取符号文件。
[0051]步骤S14、基于转储文件、符号文件、源代码信息脚本、源代码下载脚本实现崩溃源代码定位本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于代码版本管理软件的程序崩溃源码调试方法,其特征在于,包括以下步骤:基于源代码版本信息、仓库地址、文件目录、存放路径、下载命令以及本地代码路径创建源代码信息脚本;基于下载命令创建源代码下载脚本;基于转储文件获取符号文件;基于转储文件、符号文件、源代码信息脚本、源代码下载脚本实现崩溃源代码定位。2.根据权利要求1所述的基于代码版本管理软件的程序崩溃源码调试方法,其特征在于,基于源代码版本信息、仓库地址、文件目录、存放路径、下载命令以及本地代码路径创建源代码信息脚本包括:获取源代码版本信息、仓库地址、文件目录以及本地代码路径;根据符号文件中的源代码文件查询表,为每个标记的源代码文件生成特征参数;指定源代码下载后的存放路径;创建下载命令。3.根据权利要求2所述的基于代码版本管理软件的程序崩溃源码调试方法,其特征在于,所述符号文件包括源代码信息、调试信息、源代码文件查询表;所述源代码信息包括源代码的函数名、变量名以及与之对应的内存地址;所述调试信息包括行号信息、堆栈跟踪信息;所述源代码文件查询表包括源代码文件的绝对路径、哈希值。4.根据权利要求2所述的基于代码版本管理软件的程序崩溃源码调试方法,其特征在于,根据符号文件中的源代码文件查询表,为每个标记的源代码文件生成特征参数包括:获取符号文件中的源代码文件查询表;遍历所述查询表中的源代码文件,如果该文件路径在本地代码路径中存在,则对该文件进行标记;对每个标记的源代码文件生成下载所需的特征参数。5.根据权利要求4所述的基于代码版本管理软件的程序崩溃源码调试方法,其特征在于,所述特征参数包括:源代码文件存放...

【专利技术属性】
技术研发人员:张涛
申请(专利权)人:安世亚太科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1