在数据处理装置中进行除错的制作方法

文档序号:9646492阅读:393来源:国知局
在数据处理装置中进行除错的制作方法
【技术领域】
[0001]本公开关于数据处理装置,具体地关于接收来自除错器的指令的数据处理装置。
【背景技术】
[0002]在一些数据处理装置中,存在数个不同的特权模式(执行模式)。处理电路可在任一时间以这些等特权模式中之一操作。例如,在处理操作系统的操作时,处理电路可在较高特权等级操作,该特权等级容许对硬件装置或存储器进行直接存取。相反,当执行在操作系统条件下执行的软件时,处理电路可以较低特权模式操作,该模式仅允许存取存储器中已经明确分配至该软件的区域。
[0003]除错器可用以使处理电路暂停其常规执行(例如,对从存储器撷取的指令的执行)及替代地执行一个或多个直接注入的指令。该注入指令例如可用以设定或存取存储器中保存的值。因此,可观察及测试数据处理装置或由数据处理装置执行的软件的行为。在一些情况下,在使用除错器时,需要防止处理电路进入更高特权模式。这可限制用户利用处理电路的更高特权模式的能力,例如通过注入使得处理电路(在其更高的操作特权模式中)存取已经分配至其他(可能为专属)应用的存储器的指令来进行利用。
[0004]然而,当注入指令的执行导致出现异常时,则可能出现困难。通常,可由以更高特权等级运行的软件处理异常。然而,如果处理电路在除错时被阻止进入该更高特权模式,则数据处理装置可能无法响应于所出现的异常,或甚至无法向使用者通知该异常。该情况在除错器通常可用以寻找数据处理装置或其软件的故障的情况下尤其成问题。

【发明内容】

[0005]依据一个方面,提供了一种装置,该装置包括:除错接口,用以接收来自除错器的指令;处理电路,用以在除错状态下执行从除错接口接收到的指令;控制电路,如果控制参数具有预定值,则用以在除错状态时禁止以预定特权模式执行指令;及传讯电路,用以在除错状态中及控制参数具有预定值时响应于正在被传讯且将以预定特权模式处理的第一异常,以传讯将以不同特权模式处理的第二异常,以及设定标识第一异常类型的信息。
[0006]依据第二方面,提供了一种方法,该方法操作处理电路,该处理电路具有除错状态以用于执行来自除错接口接收到的指令,其中,若控制参数具有预定值,则处理电路被禁止在处于除错状态中时以预定特权模式执行指令,该方法包括以下步骤:接收信号,该信号指示将以预定特权模式处理的第一异常已产生;若在处理电路处于除错状态中及控制参数具有预定值的情况下接收到指示第一异常已产生的所述信号,则传讯将以不同特权模式处理的第二异常;及设定标识第一异常类型的信息。
[0007]依据第三方面,提供了一种装置,该装置包括:除错接口手段,用于接收来自除错器手段的指令;处理手段,用于在除错状态中执行从除错接口手段接收到的指令;控制手段,若控制参数具有预定值,则用于在处于除错状态时禁止以预定特权模式执行指令;及传讯手段,用于在处于除错状态中及控制参数具有预定值时响应于正在被传讯且将以预定特权模式处理的第一异常,以传讯将以不同特权模式处理的第二异常,及设定标识第一异常类型的信息。
【附图说明】
[0008]本技术的更多方面、特征及优势将在以下示例描述中显而易见,将结合附图阅读该描述,在附图中:
[0009]图1是根据一个实施例示出的电路的示意图;
[0010]图2是根据一个实施例示出的不同特权模式之间的关系;
[0011]图3是根据一个实施例示出的对接收到的异常控制参数的效应的流程图;
[0012]图4是根据一个实施例示出的对于接收变更特权等级的请求控制参数的效应的流程图;
[0013]图5是根据一个实施例示出的对于接收进入除错状态的请求控制参数的效应的流程图。
【具体实施方式】
[0014]除错接口用以接收来自除错器的指令,当处理电路处于除错状态时,从正在由处理电路执行的除错接口接收到该指令。控制电路用以控制处理电路,以便可依据控制参数而在处理电路处于预定特权模式时阻止除错(除错指令的执行)进行。控制电路可为专用电路,形成处理电路的部分的电路,或甚至处理电路自身。当意欲以预定特权模式处理出现的第一异常时,如果处理电路处于除错状态及如果控制参数具有预定值以使得处理电路被禁止改变该预定特权模式以处理该异常,则传讯电路传讯第二异常。第二异常将以不同于预定特权模式的特权模式来处理。
[0015]此外,标识所出现的第一异常的类型的信息也被设定。因此,处理电路能够进入不同特权模式,从而向所出现的第一异常提供回应。使用所设定的信息,可使除错器意识到第一异常。以此方式,即使不可能纠正导致第一异常产生的情况,但还是有可能通知除错器所发生的第一异常。
[0016]如果控制参数具有预定值及如果处理电路处于除错状态,则控制电路禁止处理电路改变到预定特权模式。以此方式,通过禁止处理电路在除错状态有效时进入预定特权模式,来防止在装置同时处于除错状态时以预定特权模式执行指令。
[0017]如果控制参数具有预定值及如果处理电路处于预定特权模式,则控制电路禁止处理电路进入除错状态。以此方式,通过禁止处理电路在处于预定特权模式时进入除错模式,来防止在装置同时处于除错状态下时以预定特权模式执行指令。
[0018]预定特权模式所处的特权等级可高于不同的特权模式。因此,通过设定标识第一异常的类型的信息,处理电路无需为了获取标识可用(例如除错器可用的)第一异常的类型的信息而进入更高特权模式。由此,系统安全性可得以维持。应注意,即使预定特权模式所处于的特权等级高于该不同的特权模式,该情况并不意味着必须有严格阶层的模式。更高的特权模式可为所具有的特权高于该不同特权模式的任何模式。
[0019]有数种方式可用以设定标识第一异常类型的信息。在一些实施例中,状态缓存器用以储存标识第一异常类型的信息,该状态缓存器可由除错接口存取。因此,除错器可经由除错接口获取标识第一异常类型的信息。在其他实施例中,状态缓存器的值可能不对除错器直接可见,但除错接口可凭借经由除错接口发出的除错指令而存取该值,该等除错指令在由处理电路执行时使得状态缓存器中的值经由除错接口被写出。
[0020]在一些实施例中,标识第一异常类型的信息包括一值,该值对应于在除错状态中不能出现的异常。例如,响应于除错事件而生成的除错异常标识符。该种异常在除错状态下通常不能发生,因为在除错状态时不发生更多除错事件。使用这种值可以是有效的,因为不必分配新标识符以表示发生未处理异常的事实。
[0021]第一异常可与存储器故障有关。例如,第一异常可与存储器转换故障有关。存储器转换故障例如可由于从虚拟存储器地址向物理存储器地址的失败转换而发生,该失败转换例如归因于存取许可不足以存取目标存储器的特定区域。
[0022]在一些实施例中,第一异常是由于在已执行从虚拟地址向中间地址进行第一转换之后,又尝试从中间地址向实体地址进行第二转换而出现的。该种情况可在例如使用超管理器(hypervisor)的情况下发生。例如,用户应用程序可请求对虚拟存储器地址进行存取。虚拟存储器地址可转换为访客操作系统控制的实体地址。然而,由于访客操作系统并非主机操作系统(或超管理器),因此访客操作系统不提供物理存储器地址,并且改为提供实际上为虚拟的“物理存储器地址”。此虚拟实体地址是中间地址的示例。然后,从中间地址向实体地址执行第二转换,这一般将在可直接存取物理存储器的超管理器或主机操作系统的控制下执行。
[0023]在这种配置中,可暂停用户应用程序的执行以便开始除错,并且除错器注入存取存储器的指令。这可导致“第二转换异常”出现。然而,因为装置处于除错状态,因此如果控制参数具有预定值,则可禁止处理电路改变到可处理第二转换异常的特权模式。本技术的发明者已认识到此情况为次最佳,因为除错器因此不会意识到该异常。因此,通过对第二异常进行传讯,该第二异常将以与预定特权模式不同的特权模式处理,而处理电路被禁止进入该不同
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1