一种多应用程序的调试系统和方法技术方案

技术编号:15436908 阅读:37 留言:0更新日期:2017-05-25 19:08
本发明专利技术公开了一种多应用程序的调试系统和方法。所述系统,包括:调试客户端,用于将用来调试应用程序的调试命令传送给为所述应用程序对应设置的调试代理端,并接收所述调试代理端输出的调试结果;调试代理端,用于基于接收到的所述调试命令,调试对应的所述应用程序。本发明专利技术采用调试客户端加调试代理端的模式。调试代理端与应用程序一一对应,调试客户端和多个调试代理端建立连接通道,达到同时跟踪调试多个应用程序的目的,提高了调试效率。

Debugging system and method for multi application program

The invention discloses a debugging system and a method for a multi application program. The system includes: debug client, used to used to debug the application debugging commands to debug agent set into the corresponding application program, and receives the results of debugging agent output; debugging agent, for receiving the debug commands based on the corresponding application debugging the. The invention adopts the mode of debugging client and debugging proxy end. The debugging agent and the application program correspond to each other, debugging the client and debugging agents to establish connection channels to achieve the goal of debugging multiple applications at the same time, and improving the debugging efficiency.

【技术实现步骤摘要】
一种多应用程序的调试系统和方法
本专利技术涉及通信
,特别是涉及一种多应用程序的调试系统和方法。
技术介绍
调试器作为一种重要的调试方式,在应用程序的开发过程中起着重要作用。调试器主要包括硬件调试器和软件调试器。硬件调试器功能强大,但是价格昂贵,开发成本高。软件调试器可以通过串口或者远程终端协议Telnet连接嵌入式系统,执行应用程序调试,但是,在现有嵌入式系统的调试技术中,多任务的嵌入式系统一次只能调试一个应用进程,如果调试多个应用程序,则需要进行调试切换。
技术实现思路
本专利技术要解决的技术问题是提供一种多应用程序的调试系统和方法,用以解决现有嵌入式系统调试技术不能同时跟踪调试多个应用程序的问题。针对上述技术问题,本专利技术是通过以下技术方案来解决的。本专利技术提供了一种多应用程序的调试系统,包括:调试客户端,用于将用来调试应用程序的调试命令传送给为所述应用程序对应设置的调试代理端,并接收所述调试代理端输出的调试结果;调试代理端,用于基于接收到的所述调试命令,调试对应的所述应用程序。其中,所述调试代理端,用于为其对应设置的应用程序创建消息队列和有名管道,通过所述消息队列接收所述调试客户端传送的调试命令,通过所述有名管道将调试结果传送给所述调试客户端。其中,所述调试代理端,具体用于:从所述消息队列中获取调试命令;判断所述调试命令中是否包含非法指令;在判定为否的情况下,执行所述调试命令,调试所述应用程序;在判定为是的情况下,从所述消息队列中获取下一个调试命令。其中,所述调试代理端,具体用于:在执行所述调试命令之前,记录当前的执行环境信息;在执行所述调试命令之时,如果执行出现异常,则判定所述调试命令中包含非法指令;根据记录的所述执行环境信息恢复执行环境,并从所述消息队列中获取下一个调试命令。其中,还包括调试终端;所述调试终端,用于接收用来调试应用程序的调试命令,并将所述调试命名向所述调试客户端发送;所述调试客户端,还用于将所述应用程序的调试结果发送给所述调试终端,以在所述调试终端中显示所述调试结果。其中,所述调试代理端,还用于在其对应的应用程序所启动的进程中,提取所有函数信息和全局变量信息,并形成全局符号表,以便所述调试终端基于所述全局符号表,形成用来调试所述应用程序的调试命令。本专利技术还提供了一种多应用程序的调试方法,包括:调试客户端将用来调试应用程序的调试命令传送给为所述应用程序对应设置的调试代理端;调试代理端基于接收到的所述调试命令,调试对应的所述应用程序,并将调试结果向所述调试客户端发送;调试客户端接收所述调试代理端输出的调试结果。其中,所述调试代理端基于接收到的所述调试命令,调试对应的所述应用程序,并将调试结果向所述调试客户端发送,包括:所述调试代理端为其对应设置的应用程序创建消息队列和有名管道,通过所述消息队列接收所述调试客户端传送的调试命令,通过所述有名管道将调试结果传送给所述调试客户端。其中,所述调试代理端基于接收到的所述调试命令,调试对应的所述应用程序,包括:所述调试代理端从所述消息队列中获取调试命令;判断所述调试命令中是否包含非法指令;若否,则执行所述调试命令,调试所述应用程序;若是,则从所述消息队列中获取下一个调试命令。其中,所述判断所述调试命令中是否包含非法指令,包括:在执行所述调试命令之前,记录当前的执行环境信息;在执行所述调试命令之时,如果执行出现异常,则判定所述调试命令中包含非法指令;根据记录的所述执行环境信息恢复执行环境,并从所述消息队列中获取下一个调试命令。其中,所述用来调试应用程序的调试命令是在调试终端中输入的,并由所述调试终端发送给所述调试客户端的;在调试对应的所述应用程序之后,调试客户端将所述应用程序的调试结果发送给所述调试终端,以在所述调试终端中显示所述调试结果。其中,所述调试代理端在其对应的应用程序所启动的进程中,提取所有函数信息和全局变量信息,并形成全局符号表,以便所述调试终端基于所述全局符号表,形成用来调试所述应用程序的调试命令。本专利技术有益效果如下:本专利技术采用调试客户端加调试代理端的模式。调试代理端与应用程序一一对应,调试客户端和多个调试代理端建立连接通道,达到同时跟踪调试多个应用程序的目的,提高了调试效率。附图说明图1是根据本专利技术一实施例的多应用程序的调试系统的结构图;图2是根据本专利技术一实施例的多应用程序的调试系统的具体架构图;图3是根据本专利技术一实施例的调试客户端和调试代理端的交互示意图;图4是根据本专利技术一实施例的多应用程序的调试方法的流程图。具体实施方式以下结合附图以及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不限定本专利技术。本专利技术提供了一种多应用程序的调试系统,图1是根据本专利技术一实施例的多应用程序的调试系统的结构图。本实施例可以应用于嵌入式系统中。该多应用程序的调试系统包括:调试客户端110和调试代理端120。为每个待调试的应用程序对应设置的调试代理端。在图1中,调试代理端120的数量为多个,包括:调试代理端121~调试代理端12n,其中,n>1。调试客户端110可以和这多个调试代理端120通信。调试客户端110,用于将用来调试应用程序的调试命令传送给为该应用程序对应设置的调试代理端120,并接收该调试代理端120输出的调试结果。调试代理端120,用于基于接收到的调试命令,调试对应的应用程序,并将调试结果向调试客户端110发送。本实施例为每个待调试的应用程序对应设置调试代理端120,调试客户端110同时维护与多个调试代理端120的连接通道,进而可以达到同时跟踪调试多个应用程序的目的,提高了调试效率;对于Linux、ucosii等多任务的系统,同时跟踪调试多个进程,更能直观、有效地观察到系统运行的状态。在一个实施例中,调试代理端120,用于为对应设置的应用程序创建消息队列和有名管道,通过所述消息队列接收所述调试客户端传送的调试命令,通过所述有名管道将调试结果传送给所述调试客户端110。由于消息队列和有名管道都为现有的通信方式,在此不对消息队列和有名管道进行详述。具体的,如图2所示,图2为根据本专利技术一实施例的多应用程序的调试系统的具体架构图。多应用程序的调试系统还可以包括调试终端130;当然该调试终端130也可以独立于多应用程序的调试系统。调试终端130,用于接收用户输入的用来调试应用程序的调试命令。本实施例的多应用程序的调试系统位于嵌入式系统中,嵌入式系统运行在板卡中。调试终端130独立于本实施例的多应用程序的调试系统。调试终端130和多应用程序的调试系统,通过串口总线或者TCP/IP协议连接。用户在调试终端130的命令行中输入启动调试客户端110的命令,进入调试系统,并在命令行中输入对应用程序的调试命令。调试终端130将该用来调试应用程序的调试命令发送给多应用程序的调试系统中的调试客户端110。进一步地,用户进入命令行界面,启动调试客户端,请用户输入密码,对用户进行鉴权认证,认证通过进入到调试界面。用户输入“ps”命令查看嵌入式系统中运行的进程,一个进程对应一个应用程序,用户键入命令“padpid”跟踪调试进程,其中“pid”是待调试应用程序的进程id;要跟踪多个进程,可以多次输入待调试应用程序的本文档来自技高网...
一种多应用程序的调试系统和方法

【技术保护点】
一种多应用程序的调试系统,其特征在于,包括:调试客户端,用于将用来调试应用程序的调试命令传送给为所述应用程序对应设置的调试代理端,并接收所述调试代理端输出的调试结果;调试代理端,用于基于接收到的所述调试命令,调试对应的所述应用程序。

【技术特征摘要】
1.一种多应用程序的调试系统,其特征在于,包括:调试客户端,用于将用来调试应用程序的调试命令传送给为所述应用程序对应设置的调试代理端,并接收所述调试代理端输出的调试结果;调试代理端,用于基于接收到的所述调试命令,调试对应的所述应用程序。2.如权利要求1所述的系统,其特征在于,所述调试代理端,用于为其对应设置的应用程序创建消息队列和有名管道,通过所述消息队列接收所述调试客户端传送的调试命令,通过所述有名管道将调试结果传送给所述调试客户端。3.如权利要求2所述的系统,其特征在于,所述调试代理端,具体用于:从所述消息队列中获取调试命令;判断所述调试命令中是否包含非法指令;在判定为否的情况下,执行所述调试命令,调试所述应用程序;在判定为是的情况下,从所述消息队列中获取下一个调试命令。4.如权利要求3所述的系统,其特征在于,所述调试代理端,具体用于:在执行所述调试命令之前,记录当前的执行环境信息;在执行所述调试命令之时,如果执行出现异常,则判定所述调试命令中包含非法指令;根据记录的所述执行环境信息恢复执行环境,并从所述消息队列中获取下一个调试命令。5.如权利要求1-4中任一项所述的系统,其特征在于,还包括调试终端;所述调试终端,用于接收用来调试应用程序的调试命令,并将所述调试命名向所述调试客户端发送;所述调试客户端,还用于将所述应用程序的调试结果发送给所述调试终端,以在所述调试终端中显示所述调试结果。6.如权利要求5所述的系统,其特征在于,所述调试代理端,还用于在其对应的应用程序所启动的进程中,提取所有函数信息和全局变量信息,并形成全局符号表,以便所述调试终端基于所述全局符号表,形成用来调试所述应用程序的调试命令。7.一种多应用程序的调试方法,其特征在于,包括:调试客户端将用来调试应用程序的调试命令传送给为所述...

【专利技术属性】
技术研发人员:王波涛鲍国超唐雄邱迅超闫飞宇张仰光
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:广东,44

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

1