公开/公告号CN106815149A
专利类型发明专利
公开/公告日2017-06-09
原文格式PDF
申请/专利权人 上海市共进通信技术有限公司;
申请/专利号CN201710024348.8
发明设计人 孟晶石;
申请日2017-01-13
分类号G06F11/36;
代理机构上海智信专利代理有限公司;
代理人王洁
地址 200235 上海市徐汇区虹梅路1905号远中科研楼7楼
入库时间 2023-06-19 02:27:27
法律状态公告日
法律状态信息
法律状态
2020-05-22
授权
授权
2017-07-04
实质审查的生效 IPC(主分类):G06F11/36 申请日:20170113
实质审查的生效
2017-06-09
公开
公开
技术领域
本发明涉及计算机软件技术领域,尤其涉及软件开发调试技术领域,具体是指一种基于智能网关平台进行软件开发的调试系统及方法。
背景技术
目前主流的智能手机系统如Google的android、Apple的iOS和Microsoft的windows phone.都会给开发者提供一套图形化的IDE(Integrated DevelopmentEnvironment,集成开发环境),其中都有remote debug功能。即通过IDE编写完应用程序之后,便可以自动打包、安装和部署。连机调式直接在IDE图型化界面上完成,包括单步运行程序,查看变量值,函数调用的call stack,都只用点几下鼠标即可完成。相对于直接使用gdb(GNU Project debugger,一种程序调试工具),有着代码查看方便,结合IDE的代码跳转,查找等功能,使用起来更人性化。
发明内容
本发明的目的是克服了上述现有技术的缺点,提供了一种能够实现在智能网关平台上提供IDE开发环境的调式功能的基于智能网关平台进行软件开发的调试系统及方法。
为了实现上述目的,本发明具有如下构成:
该基于智能网关平台进行软件开发的调试系统,包括:
主机,用于为目标机生成cpk(C Package,C语言开发的插件程序包)插件,并控制所述的目标机完成调试;
目标机,用于接收并安装所述的cpk插件,并对软件进行调试。
较佳地,所述的主机包括集成开发环境模块,用于为目标机生成cpk插件,并控制所述的目标机完成调试,具体包括以下步骤:
(1-1)软件开发人员在所述的主机上编译并编辑info.plugin文件,所述的集成开发环境模块将所述的info.plugin文件打包为cpk插件包;
(1-2)所述的集成开发环境模块向目标机上传cpk插件包;
(1-3)所述的集成开发环境模块获取目标机上的进程号和文件名列表;
(1-4)所述的集成开发环境模块向目标机调式服务程序发送launch指令,要求目标机通过gdbserver直接启动cpk插件,或向目标机调式服务程序发送attach指令,要求目标机通过已有的Pid((Process Identifier Description,进程描述符,用来代表一个进程,类似于人的身份证号)附加至已经启动的程序。
较佳地,所述的目标机包括调试服务模块,用于接收并安装所述的cpk插件,并对软件进行调试,具体包括以下步骤:
(2-1)所述的调试服务模块接收并安装主机发送的cpk插件包;
(2-2)所述的调试服务模块调式并启动cpk插件;
(2-3)所述的调试服务模块通过ps(一种查看进程运行状态信息的命令)获取目标机器上所有进程的描述符,并通过所述的描述符运行gdbserver的attach命令;
(2-4)所述的调试服务模块卸载安装的cpk插件。
较佳地,所述的集成开发环境模块为eclipse模块。
还包括一种通过上述系统基于智能网关平台进行软件开发的调试方法,所述的方法包括以下步骤:
(1)主机为目标机生成cpk插件,并控制所述的目标机完成调试
(2)目标机接收并安装所述的cpk插件,并对软件进行调试。
较佳地,所述的主机包括集成开发环境模块,所述的步骤(1)具体包括以下步骤:
(1-1)软件开发人员在所述的主机上编译并编辑info.plugin文件,所述的集成开发环境模块将所述的info.plugin文件打包为cpk插件包;
(1-2)所述的集成开发环境模块向目标机上传cpk插件包;
(1-3)所述的集成开发环境模块获取目标机上的进程号和文件名列表;
(1-4)所述的集成开发环境模块向目标机调式服务程序发送launch指令,要求目标机通过gdbserver直接启动cpk插件,或向目标机调式服务程序发送attach指令,要求目标机通过已有的Pid附加至已经启动的程序。
较佳地,所述的目标机包括调试服务模块,所述的步骤(2)具体包括以下步骤:
(2-1)所述的调试服务模块接收并安装主机发送的cpk插件包;
(2-2)所述的调试服务模块调式并启动cpk插件;
(2-3)所述的调试服务模块通过ps获取目标机器上所有进程的描述符,并通过所述的描述符运行gdbserver的attach命令;
(2-4)所述的调试服务模块卸载安装的cpk插件。
更佳地,所述的步骤(2-2),具体为:
所述的调试服务模块向目标机上的Smd(智能网关插件网理程序,负责安装、卸载、升级cpk插件程序,并对插件程序发送或接收指令)进程发出通知,Smd进程通过gdbserver启动所述的cpk插件。
采用了该发明中的基于智能网关平台进行软件开发的调试系统及方法,智能网关应用插件开发者提供更方便,快捷的开发手段和更直观,易于操作的程序调式方法,相比直接使用gdb+gdbserver,开发者直接面对图形化的操作环境而不用去记命令行,调式时更容易查看对应的代码,降低了开发者的学习门槛,从市场角度看也有利于智能网关的推广,具有广泛的应用范围。
附图说明
图1为本发明的基于智能网关平台进行软件开发的调试系统的示意图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
该基于智能网关平台进行软件开发的调试系统,包括:
主机,用于为目标机生成cpk插件,并控制所述的目标机完成调试;
目标机,用于接收并安装所述的cpk插件,并对软件进行调试。
在一种较佳的实施方式中,所述的主机包括集成开发环境模块,用于为目标机生成cpk插件,并控制所述的目标机完成调试,具体包括以下步骤:
(1-1)软件开发人员在所述的主机上编译并编辑info.plugin文件,所述的集成开发环境模块将所述的info.plugin文件打包为cpk插件包;
(1-2)所述的集成开发环境模块向目标机上传cpk插件包;
(1-3)所述的集成开发环境模块获取目标机上的进程号和文件名列表;
(1-4)所述的集成开发环境模块向目标机调式服务程序发送launch指令,要求目标机通过gdbserver直接启动cpk插件,或向目标机调式服务程序发送attach指令,要求目标机通过已有的Pid附加至已经启动的程序。
在一种较佳的实施方式中,所述的目标机包括调试服务模块,用于接收并安装所述的cpk插件,并对软件进行调试,具体包括以下步骤:
(2-1)所述的调试服务模块接收并安装主机发送的cpk插件包;
(2-2)所述的调试服务模块调式并启动cpk插件;
(2-3)所述的调试服务模块通过ps获取目标机器上所有进程的描述符,并通过所述的描述符运行gdbserver的attach命令;
(2-4)所述的调试服务模块卸载安装的cpk插件。
在一种较佳的实施方式中,所述的集成开发环境模块为eclipse模块。
还包括一种通过上述系统基于智能网关平台进行软件开发的调试方法,所述的方法包括以下步骤:
(1)主机为目标机生成cpk插件,并控制所述的目标机完成调试
(2)目标机接收并安装所述的cpk插件,并对软件进行调试。
在一种较佳的实施方式中,所述的主机包括集成开发环境模块,所述的步骤(1)具体包括以下步骤:
(1-1)软件开发人员在所述的主机上编译并编辑info.plugin文件,所述的集成开发环境模块将所述的info.plugin文件打包为cpk插件包;
(1-2)所述的集成开发环境模块向目标机上传cpk插件包;
(1-3)所述的集成开发环境模块获取目标机上的进程号和文件名列表;
(1-4)所述的集成开发环境模块向目标机调式服务程序发送launch指令,要求目标机通过gdbserver直接启动cpk插件,或向目标机调式服务程序发送attach指令,要求目标机通过已有的Pid附加至已经启动的程序。
在一种较佳的实施方式中,所述的目标机包括调试服务模块,所述的步骤(2)具体包括以下步骤:
(2-1)所述的调试服务模块接收并安装主机发送的cpk插件包;
(2-2)所述的调试服务模块调式并启动cpk插件;
(2-3)所述的调试服务模块通过ps获取目标机器上所有进程的描述符,并通过所述的描述符运行gdbserver的attach命令;
(2-4)所述的调试服务模块卸载安装的cpk插件。
在一种更佳的实施方式中,所述的步骤(2-2),具体为:
所述的调试服务模块向目标机上的Smd进程发出通知,Smd进程通过gdbserver启动所述的cpk插件。
在一个具体的实施方式中,如图1所示:
一、在target机(即智能网关设备)上开发一个调式服务程序。主要包括以下操作:
1、接收host机(与智能网关相连的开发PC机)上eclipse插件发送的cpk(CombinedPublic Key,组合公钥)包,安装在target机器上;
2、调式启动cpk插件。即调式服务程序向target机上的Smd进程发出通知,Smd通过gdbserver启动安装的cpk程序;
3、通过ps获取target机器上所有进程的Pid,并能通过指令Pid运行gdbserver的attach命令;
4、卸载安装的cpk插件。
二、Host机上的eclipse插件实现以下功能:
1、编译,编辑info.plugin文件,打包成cpk插件;
2、向target机的调式服务程序上传,安装cpk插件;
3、获取target机上的进程号和文件名列表;
4、向target机调式服务程序发送launch或attach指令,要求target机的调式服务程序通过gdbserver直接启动cpk程序,或attach到已有的进程Pid。
上述系统具有以下特点:
1)在智能网关上实现原本只能在android,windows mobile,ios,window phone等智能手机开发等地方实现的功能;
2)能过对C语言编写的插件提供调式功能;
3)eclipse模块具备插件的安装,卸载,调试和运行功能,且target机能接受这些功能;
4)开发者所使用的IDE能够与target机的调试程序实现交互;
5)开发机器的IDE能够单步运行。
采用了该发明中的基于智能网关平台进行软件开发的调试系统及方法,智能网关应用插件开发者提供更方便,快捷的开发手段和更直观,易于操作的程序调式方法,相比直接使用gdb+gdbserver,开发者直接面对图形化的操作环境而不用去记命令行,调式时更容易查看对应的代码,降低了开发者的学习门槛,从市场角度看也有利于智能网关的推广,具有广泛的应用范围。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
机译: 基于云平台可视化微伺服服务的软件开发协助系统和方法
机译: 在低版本Android平台上实时对LCM参数进行调试的调试系统及其方法
机译: 基于API的软件开发平台