代码调试方法和装置技术领域
本发明涉及软件开发技术领域,尤其涉及一种代码调试方法和装置。
背景技术
SMART/400是基于IBM AS/400平台的软件集成开发环境。SMART/400通过分层技术
来实现软件源代码的管理,具体的,开发环境分为产品发布层(也称为release层)、集成测
试层和开发层,开发层用于对源代码的编写、修改和编译,开发完成的源代码通过SMART/
400的工具从开发层开始经过集成测试层最终发布到release层,release层通常用做用户
调试以及产品打包。
目前,SMART/400提供的集成开发环境调试工具(也称为STRISDB)对程序进行调试
时,过程如下:首先,将程序从release层下拉到开发层,其次,将下拉到开发层的程序以调
试模式在开发层进行编译,然后,将在开发层编译生成的带调试代码的执行程序从开发层
拷贝到release层,最后,启动STRISDB进行程序调试。
但是,在上述调试过程中,由于需要将程序从release层下拉到开发层,因此,开发
层会遗留不必要的带有调试代码的程序版本,若后续该带有调试代码的程序版本被发布到
release层,将导致产品出错。
发明内容
本发明提供一种代码调试方法和装置,可以避免将调试代码遗留在集成开发环境
中,规避了将调试代码发布至生产环境的风险,提升了产品的正确率。
本发明提供的代码调试方法,包括:
获取代码调制装置的入口参数;所述入口参数包括:程序的名称、程序的类型和程
序的层次;所述程序的层次指示了所述程序在集成开发环境中所在的开发层次;
获取登陆用户对应的搜索库链;所述搜索库链包括所述登录用户对应的各个数据
库的原始搜索优先级;所述数据库包括:所述集成开发环境中各个开发层次对应的数据库
和所述登陆用户对应的临时数据库;
修改所述搜索库链,以使所述临时数据库的搜索优先级高于所述集成开发环境中
各个开发层次对应的数据库的搜索优先级;
根据所述程序的名称和所述程序的层次将所述程序从所述集成开发环境拷贝到
所述临时数据库中;
根据所述程序的类型调用与所述程序的类型对应的编译命令对所述临时数据库
中的程序进行编译,生成调试代码;
对所述调试代码进行调试,获得调试结果。
本发明提供的代码调试装置,包括:
参数获取模块,用于获取所述代码调试装置的入口参数;所述入口参数包括:程序
的名称、程序的类型和程序的层次;所述程序的层次指示了所述程序在集成开发环境中所
在的开发层次;
库链获取模块,用于获取登陆用户对应的搜索库链;所述搜索库链包括所述登录
用户对应的各个数据库的原始搜索优先级;所述数据库包括:所述集成开发环境中各个开
发层次对应的数据库和所述登陆用户对应的临时数据库;
库链修改模块,用于修改所述搜索库链,以使所述临时数据库的搜索优先级高于
所述集成开发环境中各个开发层次对应的数据库的搜索优先级;
拷贝模块,用于根据所述程序的名称和所述程序的层次将所述程序从所述集成开
发环境拷贝到所述临时数据库中;
编译模块,用于根据所述程序的类型调用与所述程序的类型对应的编译命令对所
述临时数据库中的程序进行编译,生成调试代码;
调试模块,用于对所述调试代码进行调试,获得调试结果。
本发明提供了一种代码调试方法和装置,本发明提供的代码调试方法,充分利用
了用户对应的临时数据库,将程序从集成开发环境中拷贝到用户的临时数据库中进行编译
和调试,由于用户的临时数据库的搜索优先级高于集成开发环境中各个开发层次对应的数
据库的搜索优先级,因此,会优先搜索临时数据库从而对临时数据库中的调试代码进行调
试,避免了将调试代码遗留在集成开发环境中,规避了将调试代码发布至生产环境的风险,
提升了产品的正确率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现
有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发
明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以
根据这些附图获得其他的附图。
图1为本发明实施例一提供的代码调试方法的流程图;
图2为本发明实施例一提供的代码调试装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例
中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是
本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员
在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的代码调试方法和装置,主要应用于基于IBM AS/400平台的
SMART/400软件集成开发环境,解决现有的在SMART/400开发层遗留调试代码的问题。当然,
本发明实施例提供的代码调试方法和装置,也可以应用于基于其他硬件平台的任意软件集
成开发环境遗留调试代码的场景,本发明对此不做特别限制。
图1为本发明实施例一提供的代码调试方法的流程图,本实施例提供的代码调试
方法,执行主体可以为代码调试装置,代码调试装置可以为软件程序。如图1所示,本实施例
提供的代码调试方法,可以包括:
步骤101、获取代码调制装置的入口参数。
其中,入口参数包括:程序的名称、程序的类型和程序的层次。程序的层次指示了
程序在集成开发环境中所在的开发层次。
具体的,代码调制装置的入口参数指示了待调试程序的相关属性,在本步骤中,获
取待调试程序的相关属性。
需要说明的是,本实施例对于程序的名称、程序的类型和程序的层次的具体实现
方式不做特别限定,程序的层次根据不同的集成开发环境而有所不同,根据实际需要进行
设置。
例如:程序的名称可以为中文或者英文的任意组合,等等。
例如:程序的类型可以为命令集程序(Comman list program,简称CLP),也可以为
COBOL程序(简称为CBL程序),等等。
例如:若集成开发环境为SMART/400,则集成开发环境的开发层次可以为release
层、集成测试层和开发层,相应的,程序的层次可以为release层、集成测试层或者开发层。
步骤102、获取登陆用户对应的搜索库链。
搜索库链包括登录用户对应的各个数据库的原始搜索优先级。数据库包括:集成
开发环境中各个开发层次对应的数据库和登陆用户对应的临时数据库。
具体的,用户对应的搜索库链,指示了用户对应的各个数据库的原始搜索优先级,
在程序执行时需要搜索数据库时,将会按照搜索库链指示的各个数据库对应的搜索优先
级,对搜索优先级高的数据库进行优先搜索。
其中,每个登陆用户均对应有一个临时数据库。
需要说明的是,本实施例对于用户对应的临时数据库的实现方式不做特备限制。
例如:若硬件平台为IBM AS/400,则用户对应的临时数据库可以为IBM AS/400的QTEMP库。
步骤103、修改搜索库链,以使临时数据库的搜索优先级高于集成开发环境中各个
开发层次对应的数据库的搜索优先级。
具体的,用户对应的临时数据库的搜索优先级高于集成开发环境中各个开发层次
对应的数据库的搜索优先级,则当程序执行需要搜索数据库时,将优先搜索用户的临时数
据库,进而可以优先获取临时数据库中的数据以进行进一步的处理。
步骤104、根据程序的名称和程序的层次将程序从集成开发环境拷贝到临时数据
库中。
具体的,程序的名称可以唯一标识不同的程序,程序的层次指示了程序在集成开
发环境中所在的开发层次,因此,通过程序的名称和程序的层次可以将程序从集成开发环
境中相应的开发层次中拷贝到用户的临时数据库中。
步骤105、根据程序的类型调用与程序的类型对应的编译命令对临时数据库中的
程序进行编译,生成调试代码。
具体的,调用与程序的类型相对应的编译命令在调试模式下对程序进行编译,生
成调试代码,调试代码中可以包括用户增加的调试信息。
步骤106、对调试代码进行调试,获得调试结果。
可见,本实施例提供的代码调试方法,充分利用了用户对应的临时数据库,相比于
现有技术中将程序从release层下拉到开发层进行编译和调试,本实施例提供的代码调试
方法,将程序从release层拷贝到用户的临时数据库中进行编译和调试,由于修改了用户对
应的搜索库链,用户的临时数据库的搜索优先级高于集成开发环境中各个开发层次对应的
数据库的搜索优先级,因此,当程序执行需要搜索数据库时,会优先搜索用户的临时数据库
而不是集成开发环境,从而获得临时数据库中的调试代码,进而对调试代码进行调试获得
调试结果。在代码的整个调试过程中,不会在集成开发环境中遗留调试代码,因此规避了将
调试代码发布至生产环境的风险,由于不会因为在集成开发环境中遗留调试代码而导致产
品出错,因此提升了产品的正确率。
可选的,入口参数还可以包括:更新数据库指示信息。本实施例提供的代码调试方
法,还可以包括:
若更新数据库指示信息指示需要更新数据库,则将程序对应的调试信息更新至与
程序的层次对应的数据库中。
具体的,更新数据库指示信息可以为更新数据库或者不更新数据库,这里的数据
库是指与程序的层次对应的数据库,若需要更新数据库,则将程序对应的调试信息更新至
数据库中。
需要说明的是,本实施例对于调试信息的具体实现方式不做特别限制,根据需要
进行设置。例如:程序相关的调试信息可以包括在对程序进行编译过程中添加的调试信息
以及调试程序过程中生成的相关数据,等等。
可选的,本实施例提供的代码调试方法,还可以包括:
将搜索库链中各个数据库的搜索优先级恢复为各个数据库的原始搜索优先级。
具体的,在程序调试完成后,将用户对应的搜索库链中各个数据库的搜索优先级
恢复为各个数据库的原始搜索优先级,以确保后续用户搜索库链应用的正确性。
可选的,本实施例提供的代码调试方法,还可以包括:
删除临时数据库中的程序、调试代码和调试结果。
可选的,本实施例提供的代码调试方法,还可以包括:
在用户退出登出时,清空用户对应的临时数据库中的所有数据。
本实施例提供了一种代码调试方法,包括:获取代码调制装置的入口参数,获取登
陆用户对应的搜索库链,修改搜索库链,以使临时数据库的搜索优先级高于集成开发环境
中各个开发层次对应的数据库的搜索优先级,根据程序的名称和程序的层次将程序从集成
开发环境拷贝到临时数据库中,根据程序的类型调用与程序的类型对应的编译命令对临时
数据库中的程序进行编译,生成调试代码,对调试代码进行调试,获得调试结果。本实施例
提供的代码调试方法,充分利用了用户对应的临时数据库,将程序从集成开发环境中拷贝
到用户的临时数据库中进行编译和调试,由于用户的临时数据库的搜索优先级高于集成开
发环境中各个开发层次对应的数据库的搜索优先级,因此,会优先搜索临时数据库从而对
临时数据库中的调试代码进行调试,避免了将调试代码遗留在集成开发环境中,规避了将
调试代码发布至生产环境的风险,提升了产品的正确率。
图2为本发明实施例一提供的代码调试装置的结构示意图,本实施例提供的代码
调试装置,用于执行图1所示方法实施例提供的代码调试方法。如图2所示,本实施例提供的
代码调试装置,可以包括:
参数获取模块11,用于获取代码调试装置的入口参数。入口参数包括:程序的名
称、程序的类型和程序的层次。程序的层次指示了程序在集成开发环境中所在的开发层次。
库链获取模块12,用于获取登陆用户对应的搜索库链。搜索库链包括登录用户对
应的各个数据库的原始搜索优先级。数据库包括:集成开发环境中各个开发层次对应的数
据库和登陆用户对应的临时数据库。
库链修改模块13,用于修改搜索库链,以使临时数据库的搜索优先级高于集成开
发环境中各个开发层次对应的数据库的搜索优先级。
拷贝模块14,用于根据程序的名称和程序的层次将程序从集成开发环境拷贝到临
时数据库中。
编译模块15,用于根据程序的类型调用与程序的类型对应的编译命令对临时数据
库中的程序进行编译,生成调试代码。
调试模块16,用于对调试代码进行调试,获得调试结果。
可选的,入口参数还包括:更新数据库指示信息。装置还包括:更新模块。
更新模块用于:
若更新数据库指示信息指示需要更新数据库,则将程序对应的调试信息更新至与
程序的层次对应的数据库中。
可选的,库链修改模块13还用于:
将搜索库链中各个数据库的搜索优先级恢复为各个数据库的原始搜索优先级。
可选的,装置还包括:数据删除模块。数据删除模块用于:
删除临时数据库中的程序、调试代码和调试结果。
可选的,数据删除模块还用于:
在用户退出登出时,清空用户对应的临时数据库中的所有数据。
本实施例提供的代码调试装置,用于执行图1所示方法实施例提供的代码调试方
法,其技术原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通
过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程
序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或
者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽
管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依
然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进
行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术
方案的范围。