CN105893238A - 一种代码调试方法及装置 - Google Patents
一种代码调试方法及装置 Download PDFInfo
- Publication number
- CN105893238A CN105893238A CN201510470313.8A CN201510470313A CN105893238A CN 105893238 A CN105893238 A CN 105893238A CN 201510470313 A CN201510470313 A CN 201510470313A CN 105893238 A CN105893238 A CN 105893238A
- Authority
- CN
- China
- Prior art keywords
- executable file
- command
- encapsulated
- order
- compiling
- 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
Links
Landscapes
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明实施例提供的一种代码调试方法及装置,该方法为:将预设的编译命令、上传命令和关闭进程命令封装为第一可执行文件;调用所述第一可执行文件,运行所述编译命令进行代码编译,获得编译结果,运行所述上传命令将所述编译结果上传至指定设备,以及运行所述关闭进程命令关闭所述指定设备上与所述编译结果相关的进程。这样,将代码调试所需要使用到的各种命令统一封装在第一可执行文件中,然后,调用该第一可执行文件,从而通过一条调用命令,自动完成代码调试所需执行的各种命令,无需执行过多的繁琐步骤,大大简化了代码调试流程,缩短了调试时间,从而有效降低了系统运维成本。
Description
技术领域
本发明实施例涉及视频技术领域,尤其涉及一种代码调试方法及装置。
背景技术
代码调试是设备配置的必要手段之一,通过代码调试,研发人员可以实现设备的初始配置,以及软件的更新升级。
现有技术下,代码调试需要三个步骤:
1、编译代码,获得编译结果。
2、将编译结果推送至目标设备上。
3、关闭目标设备上之前运行的与编译结果相关的进程,并运行编译结果。
目前,研发人员在进行代码调试时,每天需要执行上百次的代码编译,相应地,也需要上百次地重复执行以下过程:编码代码,把编译结果对应的新的可执行文件上传到目标设备,在目标设备上验证新的可执行文件,并使用新的可执行文件。
显然,目前的代码调试方式步骤太过繁琐,且所有这些重复的工作量都是研发人员通过手动执行命令来完成,这不但严重耽误了研发人员改写代码的时间,还会严重降低整个代码调试过程的执行效率,尤其是在目标设备数量过多的情况下,即大大浪费了工作时间,又显著提高了设备运维成本。
发明内容
本发明实施例提供一种代码调试方法及装置,用以解决现有技术中代码调试需要大量工作时间,运维成本高的问题。
本发明实施例提供一种代码调试方法,包括:
将预设的编译命令、上传命令和关闭进程命令封装为第一可执行文件;
调用所述第一可执行文件,运行所述编译命令进行代码编译,获得编译结果,运行所述上传命令将所述编译结果上传至指定设备,以及运行所述关闭进程命令关闭所述指定设备上与所述编译结果相关的进程。
本发明实施例提供一种代码调试装置,包括:
封装单元,用于将预设的编译命令、上传命令和关闭进程命令封装为第一可执行文件;
调用单元,用于调用所述第一可执行文件,运行所述编译命令进行代码编译,获得编译结果,运行所述上传命令将所述编译结果上传至指定设备,以及运行所述关闭进程命令关闭所述指定设备上与所述编译结果相关的进程。
本发明实施例提供的一种代码调试方法及装置,将代码调试所需要使用到的各种命令统一封装在第一可执行文件中,然后,调用该第一可执行文件,从而通过一条调用命令,自动完成代码调试所需执行的各种命令,无需执行过多的繁琐步骤,大大简化了代码调试流程,缩短了调试时间,从而有效降低了系统运维成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中代码调试流程图;
图2为本发明实施例中调试装置结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图对本发明实施例进行详细说明。
参阅图1所示,本发明实施例中,进行代码调试的详细流程如下:
步骤100:将预设的编译命令、上传命令和关闭进程命令封装为第一可执行文件。
所谓的编译命令用于进行代码编译,获得编译结果。
例如,在需要对设备上的某些软件进行升级,更新时,可以通过编译命令对最新的代码进行编译,获得编译结果。
所谓上传命令用于将编译结果上传至指定设备。
例如,获得编译结果之后,可以将通过上传命令指定上传路径,直接将编译结果上传至相应的设备,其中,设备可以是各类需要进行软件升级、更新的设备,如,服务器,客户端,智能可穿戴设备等等。可以通过有线网络上传,也可以通过无线网络上传。在此不再一一赘述。
所谓关闭进程命令用于关闭指定设备上与最新获得的编译结果相关的进程,关闭进程命令中包括了在指定设备上查找相关进程标识(PID)的命令和关闭命令。
例如,若设备上的软件A需要更新,而软件A正通过进程X运行在设备上,那么,在上传软件A的更新版本软件A’的编译结果之前或之后,需要通过关闭进行命令把进行X关闭,这样,才能重新加载最新的软件A’。
进一步的,在生成第一可执行文件的过程中,可以在第一可执行文件中集成编译环境和连接环境,其中,编译环境表征代码编译处环境,连接环境表征代码执行处环境,之所以如此设置,是因为编译处和执行处通常为不同的执行主体,将两处的环境预先集成在第一可执行文件中,可以令第一可执行文件在两处均可顺利运行,不发生环境冲突。
步骤110:调用第一可执行文件,运行其中的编译命令进行代码编译,获得编译结果,运行其中的上传命令将编译结果上传至指定设备,以及运行其中的关闭进程命令关闭上述指定设备上与编译结果相关的进程。
本发明实施例中,步骤100和步骤110并不是连续执行的步骤,两个步骤之间可以有一定的执行间隔,执行步骤100后,何时执行步骤110由管理人员根据经验确定,或者,根据实际应用场景确定,在此不再赘述。
具体的,在执行步骤110时,可以通过source命令调用第一可执行文件,因为source命令可以引用当前窗口环境,因而通过source命令调用第一可执行文件可避免因环境冲突而造成的调用失败。如果执行过各不繁琐,或者,不存在环境冲突风险,则也可以通过其他命令调用第一可执行文件,并在调用过程中实时设置环境,在此不再赘述。
这样,在上传编译结果,以及在指定设备上关闭与编译结果相关的进程后,指定设备上的系统可以自动加载编译结果进行软件更新或升级,从而完成代码调试。
进一步的,在调用第一可执行文件并执行其中的各种命令后,可以继续接收指定设备的反馈,根据反馈判断第一可执行文件中的各种命令是否执行正确,一旦发现各种命令没有顺利执行,则可以判定第一可执行文件存在编译错误,那么,根据反馈的错误指示重新编译第一可执行文件并继续进行调用,直到调用成功为止,在此不再赘述。
基于上述实施例,为了进一步缩短调试时间,较佳的,可以在调用第一可执行文件之前,将预设的连接命令(connect)、权限命令(root)和挂载命令(remount)封装为第二可执行文件,其中,connect用于与指定设备建立连接,root用于获取指定设备的操作权限,remount用于实现挂载,即分配盘符。
当然,第二可执行文件亦可封装为.sh格式,也可以封装为.bat格式,在此不再赘述。
那么,在调用第一可执行文件之前,则可以先调用第二可执行文件,运行其中的connect与指定设备建立连接,然后,运行其中的root获取指定设备的操作权限,以及运行其中的remount实现挂载。
这样,可以通过调用第二可执行文件,自动完成与指定设备的连接,从而便于后续调用第二可执行文件执行相关命令,进一步提高调试效率,缩短调试时间。
基于上述实施例,参阅图2所示,本发明实施例中,代码调试装置包括封装单元20和调用单元21,其中:
封装单元20,用于将预设的编译命令、上传命令和关闭进程命令封装为第一可执行文件;
调用单元21,用于调用第一可执行文件,运行编译命令进行代码编译,获得编译结果,运行上传命令将编译结果上传至指定设备,以及运行关闭进程命令关闭指定设备上与编译结果相关的进程。
较佳的,将预设的编译命令、上传命令和关闭进程命令封装为第一可执行文件时,封装单元20用于:
将预设的编译命令、上传命令和关闭进程命令封装为.sh格式的第一可执行文件,或者,封装为.bat格式的第一可执行文件;
较佳的,调用所述第一可执行文件时,调用单元21用于:
通过source命令调用所述第一可执行文件,该source命令继承当前窗口环境。
较佳的,在调用第一可执行文件之前,封装单元20进一步用于:
将预设的连接命令、权限命令和挂载命令封装为第二可执行文件;
在调用第一可执行文件之前,调用单元21进一步用于:
调用第二可执行文件,运行连接命令与所述指定设备建立连接,运行权限命令获取所述指定设备的操作权限,以及运行挂载命令实现挂载。
调用单元21进一步用于:
接收指定设备的反馈,根据反馈确定第一可执行文件存在编译错误时,根据错误指示重新编译第一可执行文件。
本发明实施例中,上述封装单元20和调用单元21可以通过硬件处理器(hardware processor)来实现相关功能,在此不再一一赘述。
综上所述,本发明实施例中,将代码调试所需要使用到的各种命令统一封装在第一可执行文件中,然后,调用该第一可执行文件,从而通过一条调用命令,自动完成代码调试所需执行的各种命令,无需执行过多的繁琐步骤,大大简化了代码调试流程,缩短了调试时间,从而有效降低了系统运维成本。
进一步地,本发明实施例中,在正常调试阶段,可以生成大批量的可执行文件,并直接通用调用封装后的批量可执行文件,一次性完成各类命令,从而大大节约研发人员的调试步骤,节约调试时间。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种代码调试方法,其特征在于,包括:
将预设的编译命令、上传命令和关闭进程命令封装为第一可执行文件;
调用所述第一可执行文件,运行所述编译命令进行代码编译,获得编译结果,运行所述上传命令将所述编译结果上传至指定设备,以及运行所述关闭进程命令关闭所述指定设备上与所述编译结果相关的进程。
2.根据权利要求1所述的方法,其特征在于,将预设的编译命令、上传命令和关闭进程命令封装为第一可执行文件,包括:
将预设的编译命令、上传命令和关闭进程命令封装为.sh格式的第一可执行文件,或者,封装为.bat格式的第一可执行文件。
3.根据权利要求1所述的方法,其特征在于,调用所述第一可执行文件,包括:
通过source命令调用所述第一可执行文件,所述source命令继承当前窗口环境。
4.根据权利要求1、2或3所述的方法,其特征在于,在调用第一可执行文件之前,进一步包括:
将预设的连接命令、权限命令和挂载命令封装为第二可执行文件;
在调用第一可执行文件之前,进一步包括:
调用所述第二可执行文件,运行所述连接命令与所述指定设备建立连接,运行所述权限命令获取所述指定设备的操作权限,以及运行所述挂载命令实现挂载。
5.如权利要求1、2或3所述的方法,其特征在于,进一步包括:
接收所述指定设备的反馈,根据所述反馈确定所述第一可执行文件存在编译错误时,根据错误指示重新编译所述第一可执行文件。
6.一种代码调试装置,其特征在于,包括:
封装单元,用于将预设的编译命令、上传命令和关闭进程命令封装为第一可执行文件;
调用单元,用于调用所述第一可执行文件,运行所述编译命令进行代码编译,获得编译结果,运行所述上传命令将所述编译结果上传至指定设备,以及运行所述关闭进程命令关闭所述指定设备上与所述编译结果相关的进程。
7.根据权利要求6所述的装置,其特征在于,将预设的编译命令、上传命令和关闭进程命令封装为第一可执行文件时,所述封装单元用于:
将预设的编译命令、上传命令和关闭进程命令封装为.sh格式的第一可执行文件,或者,封装为.bat格式的第一可执行文件。
8.根据权利要求6所述的装置,其特征在于,调用所述第一可执行文件时,所述调用单元用于:
通过source命令调用所述第一可执行文件,所述source命令继承当前窗口环境。
9.根据权利要求6、7或8所述的装置,其特征在于,在调用第一可执行文件之前,所述封装单元进一步用于:
将预设的连接命令、权限命令和挂载命令封装为第二可执行文件;
在调用第一可执行文件之前,所述调用单元进一步用于:
调用所述第二可执行文件,运行所述连接命令与所述指定设备建立连接,运行所述权限命令获取所述指定设备的操作权限,以及运行所述挂载命令实现挂载。
10.如权利要求6、7或8所述的装置,其特征在于,所述调用单元进一步用于:
接收所述指定设备的反馈,根据所述反馈确定所述第一可执行文件存在编译错误时,根据错误指示重新编译所述第一可执行文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510470313.8A CN105893238A (zh) | 2015-08-04 | 2015-08-04 | 一种代码调试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510470313.8A CN105893238A (zh) | 2015-08-04 | 2015-08-04 | 一种代码调试方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105893238A true CN105893238A (zh) | 2016-08-24 |
Family
ID=57002234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510470313.8A Pending CN105893238A (zh) | 2015-08-04 | 2015-08-04 | 一种代码调试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105893238A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108111764A (zh) * | 2018-01-03 | 2018-06-01 | 上海传英信息技术有限公司 | 一种实时开关pdaf的方法及其系统 |
CN108319548A (zh) * | 2017-01-18 | 2018-07-24 | 阿里巴巴集团控股有限公司 | 一种程序代码调试方法和装置 |
CN111488140A (zh) * | 2019-01-29 | 2020-08-04 | 杭州海康威视数字技术股份有限公司 | 一种支持多编程语言多编程库的方法、装置和计算机设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216801A (zh) * | 2007-12-27 | 2008-07-09 | 东信和平智能卡股份有限公司 | 嵌入式系统的调试方法 |
CN102129367A (zh) * | 2010-01-12 | 2011-07-20 | 上海晨兴希姆通电子科技有限公司 | 一种高通平台手机应用程序的开发方法 |
US20120222010A1 (en) * | 2009-11-20 | 2012-08-30 | Zte Corporation | Loading and Debugging Method and Debugging System Thereof |
CN102693183A (zh) * | 2012-05-30 | 2012-09-26 | 瑞斯康达科技发展股份有限公司 | 一种实现软件自动化测试的方法及系统 |
CN104063319A (zh) * | 2014-06-26 | 2014-09-24 | 上海凌阳科技有限公司 | 一种嵌入式系统的调试方法及其装置 |
CN104331363A (zh) * | 2014-10-17 | 2015-02-04 | 上海斐讯数据通信技术有限公司 | 一种用于安卓设备的自动化测试方法 |
CN104536765A (zh) * | 2015-01-09 | 2015-04-22 | 苏州科达科技股份有限公司 | 登录、调试嵌入式设备的方法及系统 |
-
2015
- 2015-08-04 CN CN201510470313.8A patent/CN105893238A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216801A (zh) * | 2007-12-27 | 2008-07-09 | 东信和平智能卡股份有限公司 | 嵌入式系统的调试方法 |
US20120222010A1 (en) * | 2009-11-20 | 2012-08-30 | Zte Corporation | Loading and Debugging Method and Debugging System Thereof |
CN102129367A (zh) * | 2010-01-12 | 2011-07-20 | 上海晨兴希姆通电子科技有限公司 | 一种高通平台手机应用程序的开发方法 |
CN102693183A (zh) * | 2012-05-30 | 2012-09-26 | 瑞斯康达科技发展股份有限公司 | 一种实现软件自动化测试的方法及系统 |
CN104063319A (zh) * | 2014-06-26 | 2014-09-24 | 上海凌阳科技有限公司 | 一种嵌入式系统的调试方法及其装置 |
CN104331363A (zh) * | 2014-10-17 | 2015-02-04 | 上海斐讯数据通信技术有限公司 | 一种用于安卓设备的自动化测试方法 |
CN104536765A (zh) * | 2015-01-09 | 2015-04-22 | 苏州科达科技股份有限公司 | 登录、调试嵌入式设备的方法及系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108319548A (zh) * | 2017-01-18 | 2018-07-24 | 阿里巴巴集团控股有限公司 | 一种程序代码调试方法和装置 |
CN108111764A (zh) * | 2018-01-03 | 2018-06-01 | 上海传英信息技术有限公司 | 一种实时开关pdaf的方法及其系统 |
CN111488140A (zh) * | 2019-01-29 | 2020-08-04 | 杭州海康威视数字技术股份有限公司 | 一种支持多编程语言多编程库的方法、装置和计算机设备 |
CN111488140B (zh) * | 2019-01-29 | 2023-10-27 | 杭州海康威视数字技术股份有限公司 | 一种支持多编程语言多编程库的方法、装置和计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
GB2508643A (en) | Method for Performing a Regression Test after Modifying Source Code File | |
US11194550B2 (en) | System and method for migrating legacy software to a system common architecture | |
CN103984612B (zh) | 一种基于hpl工具的无人值守压力测试的方法 | |
US10705500B2 (en) | Support device, method, and recording medium for simplifying control program changing operation | |
KR20150143510A (ko) | 자동화된 반도체 디바이스 테스트를 위한 테스트 계획을 컴파일하기 위해 사용되는 개발 환경 내에 편집 및 갱신 기능 구현 | |
CN102156643A (zh) | 软件集成方法及系统 | |
CN105204913A (zh) | 一种在Android操作系统上运行Linux应用程序的方法及系统 | |
CN105446712B (zh) | 一种应用程序缺陷修补方法及装置 | |
US20120174086A1 (en) | Extensible Patch Management | |
CN107656734A (zh) | 更新代码版本信息的方法、系统、可读介质和存储控制器 | |
CN109813999A (zh) | 一种配电网故障诊断算法自动测试平台、方法及应用 | |
CN105893238A (zh) | 一种代码调试方法及装置 | |
Lührs et al. | Flexible and generic workflow management | |
CN111078265B (zh) | 一种基于jenkins的web项目更新补丁生成方法 | |
CN117539791B (zh) | 一种嵌入式软件的自动化测试系统 | |
CN105893072A (zh) | 一种芯片的固件升级方法和装置 | |
CN113254054B (zh) | 一种智能合约一站式开发系统及方法 | |
CN113806962A (zh) | 用于轨道交通信号系统的多倍速仿真运行控制方法 | |
CN102819445B (zh) | 变电站综自软件在嵌入式系统硬件平台上的快速移植方法 | |
US20150355997A1 (en) | Server-Platform Simulation Service | |
CN103064722A (zh) | 一种程序统一编译方法及系统 | |
Hardion et al. | Configuration Management of the control system | |
CN111880808A (zh) | 一种Linux操作系统构建和包管理方法 | |
CN108108895B (zh) | 任务状态动态管控的方法、系统、设备及存储介质 | |
CN106325881A (zh) | 发布包自动生成方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160824 |
|
WD01 | Invention patent application deemed withdrawn after publication |