一种嵌入式环境下基于检查点的调试方法、系统及装置与流程

文档序号:11950035阅读:来源:国知局

技术特征:

1.一种基于检查点的调试方法,其特征在于,包括以下步骤:

(1)宿主机向目标机发出第一指令,令目标机上的应用程序开始运行,令检查点的序号i=1;

(2)宿主机接收外部的命令,并判断所述命令的类型;如果所述命令为保存命令,则进入步骤(3);如果所述命令为调试命令,则进入步骤(4);如果所述命令为恢复命令,则进入步骤(5);如果所述命令为退出命令,则入步骤(7);否则进入步骤(6);

(3)宿主机向目标机发出第二指令,令目标机在应用程序的当前位置创建第i检查点,并将所述应用程序对应的进程的上下文信息保存于第i检查点文件中;i=i+1,返回步骤(2);

(4)宿主机向目标机发出第三指令,令所述目标机在应用程序的当前位置调试,并向宿主机返回调试结果,宿主机将所述调试结果输出,返回步骤(2);

(5)宿主机向目标机发出第四指令,令所述目标机从第j检查点文件中恢复应用程序对应的进程的上下文信息,并将应用程序运行的当前位置恢复至第j检查点,j为1~i的整数,返回步骤(2);

(6)宿主机向外部发出报错指令,返回步骤(2);

(7)宿主机向目标机发出第五指令,结束目标机上的应用程序的运行。

2.如权利要求1所述的调试方法,其特征在于,在所述步骤(1)之前还包括,将宿主机连接至目标机。

3.如权利要求1所述的调试方法,其特征在于,所述步骤(3)中的上下文信息包括进程的状态、进程的用户变量、进程在寄存器中的地址、进程在进程表项的用户栈以及内核栈中的地址。

4.如权利要求3所述的调试方法,其特征在于,所述进程的状态包括进程头、进程的线程、进程的线程的父子关系、共享数据和私有数据。

5.如权利要求1所述的调试方法,其特征在于,所述步骤(4)具体包括如下子步骤:

(4.1)根据调试命令的种类,宿主机向目标机发出第三指令,令所述目标机在应用程序运行的当前位置进行相应种类的调试;

(4.2)在设定的时间段Δt内,宿主机判断是否收到目标机返回的调试结果,是则进入步骤(4.3),否则返回步骤(4.1);

(4.3)宿主机将所述调试结果反馈给外部,返回步骤(2)。

6.如权利要求5所述的调试方法,其特征在于,所述调试命令的种类包括条件断点、进入函数、跳出函数、设置观察点、线程核绑定、插入断点、查询断点、单步执行、持续执行、执行至结束、删除断点、查看变量、查看线程运行核、获取核运行线程或统计线程运行时间。

7.如权利要求5所述的调试方法,其特征在于,所述设定的时间段Δt为0.3s~1.0s。

8.一种基于检查点的调试系统,其特征在于,包括宿主机以及目标机,所述目标机包括解析模块、运行模块、检查点模块以及调试模块;

所述宿主机用于向解析模块发出第一指令、第二指令、第三指令、第四指令以及第五指令,同时接收解析模块返回的运行结果以及调试结果;

所述解析模块用于将第一指令以及第五指令发送给运行模块,第二指令以及第四指令发送给检查点模块,第三指令发送给调试模块;并将运行结果以及调试结果反馈至宿主机;

所述运行模块用于根据第一指令运行应用程序,以及根据第五指令结束应用程序;并在应用程序运行结束时,向解析模块输出运行结果;同时根据恢复指令,将应用程序运行的当前位置恢复至检查点处;

所述检查点模块用于根据第二指令,在应用程序的当前位置创建检查点,并将所述应用程序对应的进程的上下文信息保存于检查点文件中,同时根据第四指令,从检查点文件中恢复应用程序对应的进程的上下文信息,并向运行模块发出恢复指令;

所述调试模块用于在应用程序的当前位置调试,并向解析模块输出调试结果。

9.一种用于权利要求8所述调试装置的调试装置,其特征在于,包括解析模块、运行模块、检查点模块以及调试模块;

所述解析模块用于将第一指令以及第五指令发送给运行模块,第二指令以及第四指令发送给检查点模块,第三指令发送给调试模块;并将运行结果以及调试结果反馈至宿主机;

所述运行模块用于根据第一指令运行应用程序,根据第五指令结束应用程序,并在应用程序运行结束时,向解析模块输出运行结果;同时根据恢复指令,将应用程序运行的当前位置恢复至检查点处;

所述检查点模块用于根据第二指令,在应用程序的当前位置创建检查点,并将所述应用程序对应的进程的上下文信息保存于检查点文件中,同时根据第四指令,从检查点文件中恢复应用程序对应的进程的上下文信息,并向运行模块发出恢复指令;

所述调试模块用于在应用程序的当前位置调试,并向解析模块输出调试结果。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1