基于socket的远程调试方法技术

技术编号:33080924 阅读:59 留言:0更新日期:2022-04-15 10:34
本发明专利技术公开了一种基于socket的远程调试方法,包括以下步骤:S1:将客户端和服务端一同嵌入待交付软件代码中,加载动态调试库文件中客户端和服务端的代码信息,通过参数文件配置两端socket通信的端口;S2:获取debugServer单态句柄,为了让debugServer在全局范围内保持唯一,以此保证客户端回传过来的动态参数设置能作用到同一个server端。本发明专利技术设计合理,通过将客户端和服务端一同嵌入待交付软件代码中,对持续交付的软件进行远程后台调试,可实现一起交付,用户不需要额外部署调试服务器环境,方便人员操作,简化远程持续部署的复杂度,降低调试成本,满足使用需求。满足使用需求。满足使用需求。

【技术实现步骤摘要】
基于socket的远程调试方法


[0001]本专利技术涉及socket的远程调试
,尤其涉及一种基于socket的远程调试方法。

技术介绍

[0002]在笔者从业的行业中经常会有工期紧张、项目甲方在异地、研发人员无法长期驻地调试的小型软件系统的交付场景,甲方往往要求在极短时间内要求乙方交付软件原型并协助甲方捕捉工程实际需求后快速迭代更新,与此同时软件的模拟测试非常难在研发人员测实现,需要在实际生产环境中去测试,研发人员的开发环境也很难在甲方架设,工程部署人员和甲方项目需求方无法在现场实时捕捉有关软件的详细现场,因此需要用到远程调试软件,现有的远程调试软件其集成开发环境价格昂贵,且需要在目标机上安装相应的debugserver软件,且要求对交付的软件重新编译嵌入调试信息并重新交付,目标机需要部署好调试服务器后重新运行软件,操作调试较为繁琐,不能满足使用需求,针对上述问题加以改进,因此我们提出了基于socket的远程调试方法用于解决上述问题。

技术实现思路

[0003]基于
技术介绍
存在的技术问题,本专利技术提出了基于socket的远程调试方法。
[0004]本专利技术提出的基于socket的远程调试方法,包括以下步骤:
[0005]S1:将客户端和服务端一同嵌入待交付软件代码中,加载动态调试库文件中客户端和服务端的代码信息,通过参数文件配置两端socket通信的端口;
[0006]S2:获取debugServer单态句柄,为了让debugServer在全局范围内保持唯一,以此保证客户端回传过来的动态参数设置能作用到同一个server端,debugServer实现了单态模式;
[0007]S3:进入待测软件过程模块,找出高度易错的程序片段,利用本工具设置现场打印语句,以达到现场或者远程调试的目的;
[0008]S4:根据S3中所述的现场打印语句设置动态调试开关选项,紧接着进行debugServer调试调用,将代码现场的环境变量等辅助信息通过S2中所述的debugServer单态句柄发送出去,根据设置,这些调试调用可能会挂起待测程序使其处在一个类似暂停的状态,从而等待客户端进一步的指示;
[0009]S5:S4中所述的客户端进行判断是否继续调试,若不继续调试,则结束,若继续调试则循环进入待测软件的其他部分并在合适的地方设下调试语句重复上述过程直到待测程序退出;
[0010]S6:被待测软件加载后,接受调用方加载初始化库,创建debugServer单态句柄并返回给调用方;
[0011]S7:debugServer首先从S1中所述的动态库文件目录中尝试加载配置文件并初始化各个调试选项;
[0012]S8:启动Server线程并通过S1中的所述的socket通信的端口循环监听客户端连接,为每一个连入的客户端分配一个代表客户端的句柄并启动一个通信线程用来监听和处理消息;
[0013]S9:通信线程启动后就进入循环监听通信通道内来自真正调试客户端的消息,解析获取到的消息并分别调用debugServer的相应调试功能;
[0014]S10:判断客户端是否断开,若断开则回收该通道资源并且把对应客户端句柄移除同时结束信道线程,若未断开,则再次回到S9中继续监听通信通道内来自真正调试客户端的消息;
[0015]S11:紧接着进行调试客户端,加载动态调试库文件,调试客户端可以使用命令行或者图形界面方式实现,S1中所述的加载动态调试库内部实现了一个简易的命令行客户端,使用者只需要简单几行代码就可以在命令行中使用;
[0016]S12:新建client类,加载客户端参数文件,使用配置文件中的服务器地址和端口连接待测软件server端;
[0017]S13:启动客户端信道线程,对连接到server的信道使用独立线程处理通信,在信道内处理服务器丢出的调试信息;
[0018]S14:等待客户端输入调试指令,发送调试指令到server端,如果配置文件中配置了中断待测软件或者使用调试指令的方式发送中断指令到server端,则server端进入中断等待状态,这时客户端需要发送其他调试指令或者设置或者打印待测软件的动态变量,并且在最后还需要输入本次中断结束指令才会让待测软件继续执行后续程序;
[0019]S15:判断是否结束客户端。
[0020]优选地,所述S4中,大部分调试开关会附随在本工具交付动态库中作为参数文件存在,当远程调试的时候需要指导现场工程师或者客户工程师配置。
[0021]优选地,所述S12中,参数文件包括静态配置文件和server端配置文件,且静态配置文件和server端配置文件为同一个文件,调试的时候需要调试人员远程辅助或者发布配置到现场工程师这里。
[0022]优选地,所述S1中,客户端可以本地或者远程连入服务端,查看实时调试信息或者进行交互式调试,其中服务端需先配置交付软件现场网络环境端口映射。
[0023]优选地,所述S1中,信息通过广播发送到连接到本服务端的所有客户端,根据配置也可以写入调试信息到log文件。
[0024]与现有的技术相比,本专利技术的有益效果是:
[0025]本专利技术设计合理,通过将客户端和服务端一同嵌入待交付软件代码中,对持续交付的软件进行远程后台调试,可实现一起交付,用户不需要额外部署调试服务器环境,方便人员操作,简化远程持续部署的复杂度,降低调试成本,满足使用需求。
附图说明
[0026]图1为本专利技术提出的基于socket的远程调试方法的待测软件端流程图;
[0027]图2为本专利技术提出的基于socket的远程调试方法的动态库流程图;
[0028]图3为本专利技术提出的基于socket的远程调试方法的客户端流程图。
具体实施方式
[0029]下面结合具体实施例对本专利技术作进一步解说。
[0030]实施例
[0031]参照图1

3,本实施例提出了基于socket的远程调试方法,包括以下步骤:
[0032]S1:将客户端和服务端一同嵌入待交付软件代码中,加载动态调试库文件中客户端和服务端的代码信息,通过参数文件配置两端socket通信的端口,且客户端可以本地或者远程连入服务端,查看实时调试信息或者进行交互式调试,其中服务端需先配置交付软件现场网络环境端口映射,信息通过广播发送到连接到本服务端的所有客户端,根据配置也可以写入调试信息到log文件;
[0033]S2:获取debugServer单态句柄,为了让debugServer在全局范围内保持唯一,以此保证客户端回传过来的动态参数设置能作用到同一个server端,debugServer实现了单态模式;
[0034]S3:进入待测软件过程模块,找出高度易错的程序片段,利用本工具设置现场打印语句,以达到现场或者远程调试的目的;
[0035]S4:根据S3中所述的现场打印语句设置动态调试开关选项,紧接着进行debugSe本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于socket的远程调试方法,其特征在于,包括以下步骤:S1:将客户端和服务端一同嵌入待交付软件代码中,加载动态调试库文件中客户端和服务端的代码信息,通过参数文件配置两端socket通信的端口;S2:获取debugServer单态句柄,为了让debugServer在全局范围内保持唯一,以此保证客户端回传过来的动态参数设置能作用到同一个server端,debugServer实现了单态模式;S3:进入待测软件过程模块,找出高度易错的程序片段,利用本工具设置现场打印语句,以达到现场或者远程调试的目的;S4:根据S3中所述的现场打印语句设置动态调试开关选项,紧接着进行debugServer调试调用,将代码现场的环境变量等辅助信息通过S2中所述的debugServer单态句柄发送出去,根据设置,这些调试调用可能会挂起待测程序使其处在一个类似暂停的状态,从而等待客户端进一步的指示;S5:S4中所述的客户端进行判断是否继续调试,若不继续调试,则结束,若继续调试则循环进入待测软件的其他部分并在合适的地方设下调试语句重复上述过程直到待测程序退出;S6:被待测软件加载后,接受调用方加载初始化库,创建debugServer单态句柄并返回给调用方;S7:debugServer首先从S1中所述的动态库文件目录中尝试加载配置文件并初始化各个调试选项;S8:启动Server线程并通过S1中的所述的socket通信的端口循环监听客户端连接,为每一个连入的客户端分配一个代表客户端的句柄并启动一个通信线程用来监听和处理消息;S9:通信线程启动后就进入循环监听通信通道内来自真正调试客户端的消息,解析获取到的消息并分别调用debugServer的相应调试功能;S10:判断客户端是否断开,若断开则回收该通道资源并且把对应客户端句柄移除同时结束信道线程,若未断开,则再次回到S9中继续监听通信通道内来自真正调试客...

【专利技术属性】
技术研发人员:张文斌田中海刘海洋张璟博
申请(专利权)人:深圳英博达智能科技有限公司
类型:发明
国别省市:

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

1