2.2 命令处理
命令处理包括单步进入、单步跳过、返回、悬挂、恢复、下载、运行、继续运行、终止等。平台提供标准模式的命令处理的实现。
所有的命令处理需要实现接口IDeblugCom-mandHandler,并且实现如下函数:
canExecute(IEnabledStateRequest request)
execute(IDebugCommandRequest request)
标准模式可以重载平台的实现,定制模式需要自己提供一个实现,包括提供作为适配器的处理类,可以直接实现处理接口。
平台所定义的处理者进程为如下几个:
IDisconnectHandler
IDroDToFrameHandler
IResumeHandler
IStepFiltersHandler
IStepIntoHandler
IStepOvetHandler
IStepReturnHandler
ISuspendHandler
ITerminateHandler
处理者和命令处理之间的交互是异步的。需要先更新使能状态,然后开始执行。传递到命令处理的是一个IRequest对象,实现接收状态,允许取消,当请求结束时通知等功能。
命令执行的过程如图4所示。
平台提供的命令处理应用JOB来实现异步交互。命令处理为每一个请求和返回维护一个JOB的进度表,并且JOB是异步运行的。
2.3 视图内容
利用平台提供的tree视图的实现变量、寄存器的查看,并用内容提供者和标签提供者来支持定制异步内容。这个tree视图的实现基于JFace的tree视图,并实现了接口ILazyTreePathContentProvider。这个视图不能被继承,但是可以被初始化。
一些调试视图定义了很多列。像变量视图,寄存器视图,都分别有名字列,值列等。调试模型提供要显示的列,以及元编辑器对某一个值进行编辑,还为每一个列提供标签。视图、列、元编辑器之间的关系如图5所示。列表述定义了要显示的列,包括列头、列图像、列标识。允许提供多个列,在初始化时显示其中的几列,用户可以选择显示哪些列。