CN105404559B - 在数据处理装置中进行除错 - Google Patents
在数据处理装置中进行除错 Download PDFInfo
- Publication number
- CN105404559B CN105404559B CN201510542202.3A CN201510542202A CN105404559B CN 105404559 B CN105404559 B CN 105404559B CN 201510542202 A CN201510542202 A CN 201510542202A CN 105404559 B CN105404559 B CN 105404559B
- Authority
- CN
- China
- Prior art keywords
- exception
- mode
- debug
- predetermined
- processing circuitry
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2236—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/481—Exception handling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及在数据处理装置中进行除错。本申请公开了一种具有除错状态的数据处理装置,处理电路105在该除错状态中执行从除错接口115接收到的指令。当在除错状态中控制参数具有预定值的情况下,控制变更电路135禁止以预定特权模式执行指令。在处于除错状态中的同时响应于正在被传讯的第一异常,其中该第一异常意欲以预定特权模式处理,及进一步响应于具有预定值的控制参数,传讯电路115传讯将在与预定特权模式不同的特权模式处理的第二异常,及设定标识第一异常类型的信息。因此,无须进入被禁止的(预定)特权模式,便可使除错器110意识到通常将以预定特权模式(即被禁止的特权模式)处理的第一异常。
Description
技术领域
本公开关于数据处理装置,具体地关于接收来自除错器的指令的数据处理装置。
背景技术
在一些数据处理装置中,存在数个不同的特权模式(执行模式)。处理电路可在任一时间以这些等特权模式中之一操作。例如,在处理操作***的操作时,处理电路可在较高特权等级操作,该特权等级容许对硬件装置或存储器进行直接存取。相反,当执行在操作***条件下执行的软件时,处理电路可以较低特权模式操作,该模式仅允许存取存储器中已经明确分配至该软件的区域。
除错器可用以使处理电路暂停其常规执行(例如,对从存储器撷取的指令的执行)及替代地执行一个或多个直接注入的指令。该注入指令例如可用以设定或存取存储器中保存的值。因此,可观察及测试数据处理装置或由数据处理装置执行的软件的行为。在一些情况下,在使用除错器时,需要防止处理电路进入更高特权模式。这可限制用户利用处理电路的更高特权模式的能力,例如通过注入使得处理电路(在其更高的操作特权模式中)存取已经分配至其他(可能为专属)应用的存储器的指令来进行利用。
然而,当注入指令的执行导致出现异常时,则可能出现困难。通常,可由以更高特权等级运行的软件处理异常。然而,如果处理电路在除错时被阻止进入该更高特权模式,则数据处理装置可能无法响应于所出现的异常,或甚至无法向使用者通知该异常。该情况在除错器通常可用以寻找数据处理装置或其软件的故障的情况下尤其成问题。
发明内容
依据一个方面,提供了一种装置,该装置包括:除错接口,用以接收来自除错器的指令;处理电路,用以在除错状态下执行从除错接口接收到的指令;控制电路,如果控制参数具有预定值,则用以在除错状态时禁止以预定特权模式执行指令;及传讯电路,用以在除错状态中及控制参数具有预定值时响应于正在被传讯且将以预定特权模式处理的第一异常,以传讯将以不同特权模式处理的第二异常,以及设定标识第一异常类型的信息。
依据第二方面,提供了一种方法,该方法操作处理电路,该处理电路具有除错状态以用于执行来自除错接口接收到的指令,其中,若控制参数具有预定值,则处理电路被禁止在处于除错状态中时以预定特权模式执行指令,该方法包括以下步骤:接收信号,该信号指示将以预定特权模式处理的第一异常已产生;若在处理电路处于除错状态中及控制参数具有预定值的情况下接收到指示第一异常已产生的所述信号,则传讯将以不同特权模式处理的第二异常;及设定标识第一异常类型的信息。
依据第三方面,提供了一种装置,该装置包括:除错接口手段,用于接收来自除错器手段的指令;处理手段,用于在除错状态中执行从除错接口手段接收到的指令;控制手段,若控制参数具有预定值,则用于在处于除错状态时禁止以预定特权模式执行指令;及传讯手段,用于在处于除错状态中及控制参数具有预定值时响应于正在被传讯且将以预定特权模式处理的第一异常,以传讯将以不同特权模式处理的第二异常,及设定标识第一异常类型的信息。
附图说明
本技术的更多方面、特征及优势将在以下示例描述中显而易见,将结合附图阅读该描述,在附图中:
图1是根据一个实施例示出的电路的示意图;
图2是根据一个实施例示出的不同特权模式之间的关系;
图3是根据一个实施例示出的对接收到的异常控制参数的效应的流程图;
图4是根据一个实施例示出的对于接收变更特权等级的请求控制参数的效应的流程图;
图5是根据一个实施例示出的对于接收进入除错状态的请求控制参数的效应的流程图。
具体实施方式
除错接口用以接收来自除错器的指令,当处理电路处于除错状态时,从正在由处理电路执行的除错接口接收到该指令。控制电路用以控制处理电路,以便可依据控制参数而在处理电路处于预定特权模式时阻止除错(除错指令的执行)进行。控制电路可为专用电路,形成处理电路的部分的电路,或甚至处理电路自身。当意欲以预定特权模式处理出现的第一异常时,如果处理电路处于除错状态及如果控制参数具有预定值以使得处理电路被禁止改变该预定特权模式以处理该异常,则传讯电路传讯第二异常。第二异常将以不同于预定特权模式的特权模式来处理。
此外,标识所出现的第一异常的类型的信息也被设定。因此,处理电路能够进入不同特权模式,从而向所出现的第一异常提供回应。使用所设定的信息,可使除错器意识到第一异常。以此方式,即使不可能纠正导致第一异常产生的情况,但还是有可能通知除错器所发生的第一异常。
如果控制参数具有预定值及如果处理电路处于除错状态,则控制电路禁止处理电路改变到预定特权模式。以此方式,通过禁止处理电路在除错状态有效时进入预定特权模式,来防止在装置同时处于除错状态时以预定特权模式执行指令。
如果控制参数具有预定值及如果处理电路处于预定特权模式,则控制电路禁止处理电路进入除错状态。以此方式,通过禁止处理电路在处于预定特权模式时进入除错模式,来防止在装置同时处于除错状态下时以预定特权模式执行指令。
预定特权模式所处的特权等级可高于不同的特权模式。因此,通过设定标识第一异常的类型的信息,处理电路无需为了获取标识可用(例如除错器可用的)第一异常的类型的信息而进入更高特权模式。由此,***安全性可得以维持。应注意,即使预定特权模式所处于的特权等级高于该不同的特权模式,该情况并不意味着必须有严格阶层的模式。更高的特权模式可为所具有的特权高于该不同特权模式的任何模式。
有数种方式可用以设定标识第一异常类型的信息。在一些实施例中,状态缓存器用以储存标识第一异常类型的信息,该状态缓存器可由除错接口存取。因此,除错器可经由除错接口获取标识第一异常类型的信息。在其他实施例中,状态缓存器的值可能不对除错器直接可见,但除错接口可凭借经由除错接口发出的除错指令而存取该值,该等除错指令在由处理电路执行时使得状态缓存器中的值经由除错接口被写出。
在一些实施例中,标识第一异常类型的信息包括一值,该值对应于在除错状态中不能出现的异常。例如,响应于除错事件而生成的除错异常标识符。该种异常在除错状态下通常不能发生,因为在除错状态时不发生更多除错事件。使用这种值可以是有效的,因为不必分配新标识符以表示发生未处理异常的事实。
第一异常可与存储器故障有关。例如,第一异常可与存储器转换故障有关。存储器转换故障例如可由于从虚拟存储器地址向物理存储器地址的失败转换而发生,该失败转换例如归因于存取许可不足以存取目标存储器的特定区域。
在一些实施例中,第一异常是由于在已执行从虚拟地址向中间地址进行第一转换之后,又尝试从中间地址向实体地址进行第二转换而出现的。该种情况可在例如使用超管理器(hypervisor)的情况下发生。例如,用户应用程序可请求对虚拟存储器地址进行存取。虚拟存储器地址可转换为访客操作***控制的实体地址。然而,由于访客操作***并非主机操作***(或超管理器),因此访客操作***不提供物理存储器地址,并且改为提供实际上为虚拟的“物理存储器地址”。此虚拟实体地址是中间地址的示例。然后,从中间地址向实体地址执行第二转换,这一般将在可直接存取物理存储器的超管理器或主机操作***的控制下执行。
在这种配置中,可暂停用户应用程序的执行以便开始除错,并且除错器注入存取存储器的指令。这可导致“第二转换异常”出现。然而,因为装置处于除错状态,因此如果控制参数具有预定值,则可禁止处理电路改变到可处理第二转换异常的特权模式。本技术的发明者已认识到此情况为次最佳,因为除错器因此不会意识到该异常。因此,通过对第二异常进行传讯,该第二异常将以与预定特权模式不同的特权模式处理,而处理电路被禁止进入该不同的特权模式,及通过设定标识第一异常类型(即,第二转换异常)的信息,至少可将已发生的异常的性质通知除错器。
装置可包括第一存储器管理单元以执行第一转换,第一转换基于由处理电路响应于以低于预定特权模式的特权模式执行的软件而设定的第一配置数据;及包括第二存储器管理单元以执行第二转换,该第二转换基于由处理电路响应于以预定特权模式执行的软件而设定的第二配置数据。在其他实施例中,可仅有一个存储器管理单元,该单元基于两个配置数据集执行两个操作。特定而言,存储器管理单元可执行转换旁看缓冲器中的结果的高速存取,这可高速存取转换的结果及/或合并结果。
第一配置数据及第二配置数据可由处理电路(例如,响应于软件而)设定,以便指示与特定存储器区块相关联的许可集。以此方式,可指示特定软件应用程序具有对于不同存储器区段的不同存取等级。以将会违反许可的方式尝试存取存储器区域可导致发生存储器故障。
预定特权模式可以是超管理器特权模式,并且该不同的特权模式可以是访客操作***特权模式。术语“超管理器”意在涵盖对超管理器及主机操作***的使用。超管理器或主机操作***可由此使得的多数个访客操作***能够直接在该超管理器或主机操作***下执行。每一访客操作***可向在访客操作***下执行的一个或多个用户应用程序提供虚拟化环境。当然,将了解,超管理器***可包括多个其他特权模式。
超管理器***可提供若干个情境,在这些情境中,存储器的部分被限制于特定软件。例如,访客操作***可能不允许一个应用程序存取分配至另一应用程序的存储器区段。然而,访客操作***自身及超管理器能够存取所有存储器区域。同样地,分配至一个访客操作***的存储器区段无法由另一个访客操作***或其应用程序存取。
也可使用其他特权模式。例如,一个或多个“主机应用程序”可在超管理器下直接执行,而非在于超管理器下执行的访客操作***下执行。在没有访客操作***来管理主机应用程序的情况下,无法由访客操作***处理异常。此外,可能存在与以超管理器特权模式处理异常相关的安全性问题。因此,预定特权模式可包括超管理器执行模式及执行该等主机应用程序的模式(但不包括执行其他软件的模式)。
响应于处于除错状态的处理电路及不具有预定值的控制参数,可允许处理电路进入预定特权模式。因此,只要控制参数具有除预定值以外的值,可在处理电路处于超管理器特权模式的同时使除错能够发生。
在处理电路处于除错状态中及控制参数具有预定值的情况下,传讯电路可响应于正在被传讯的将以预定特权模式处理的第三异常,以传讯将以不同特权模式处理的第四异常,及不设定标识第三异常类型的信息。对于一些异常而言,仅传讯将以不同特权模式处理的第四异常是可接受的。换言之,可能无须设定标识第三异常类型的信息。此情况例如为以下的情况:以预定特权模式产生异常,但该异常还可以以不同的特权模式处理。在该种情境下,可能无须设定标识第三异常类型的信息,因为以该不同的特权模式运行的软件能够自行决定异常类型。
图1示出了依据一个实施例的装置100。该装置包括处理电路105,该处理电路例如可为中央处理单元(central processing unit;CPU)。处理电路105接收来自除错器110的一个或多个指令。除错器110例如可在不同的数据处理装置上执行。指令从除错器110经由除错接115而被接收到,该除错接口经由输入缓冲器120连接至处理电路105。换言之,除错器110将指令传输至除错接115,该除错接115将指令储存在输入缓冲器120中。处理电路105可因此查询输入缓冲器120以便存取指令。在一些情况下,若指令由处理电路105执行,则结果可储存在输出缓冲器125中。除错器110可经由除错接115查询输出缓冲器125。以此方式,执行特定指令的结果可从处理电路105被发送返回至除错器110。这允许使用者决定执行由除错器110***/注入的特定指令的效应。
处理电路105可以以一个或多个不同的特权模式(执行模式)运行。处理电路105可采用何种操作可依据处理电路105的当前模式而定。例如,特定模式可限制当前在处理电路105上执行的软件可采取的操作。因此,通过变更处理电路105的模式,可执行多个软件,其中每个软件具有不同特权。
在图1示出的实施例中,提供控制电路135,以在发生除错的同时阻止以更高等级的执行特权执行指令。具体地,依据控制参数,在处理电路105处于除错状态时,控制电路禁止处理电路105进入预定特权模式,及当处理电路105处于预定特权模式时,控制电路禁止处理电路105进入除错状态。因此,用户被阻止进行可能导致装置100安全性降低的指令执行。例如,可阻止用户执行导致私有或秘密数据被存取及返回除错器的指令。同样地,可阻止用户中断由处理电路105使用的数据。控制参数能够使这些禁止操作失去能力。具体他,这些禁止操作在控制参数具有预定值时(例如在控制参数经判定时)有效。
处理电路105使用存储器管理单元140、145以便存取存储器150。通过使用存储器管理单元140、145,有可能不仅将虚拟地址转换至实体地址,而且还管理虚拟地址或实体地址上的许可集,以便保证仅特定软件能够存取存储器150的特定区域。可设定许可以将存储器区域(该区域可由起始地址与结束地址或特定长度定义)分配至特定软件。该特定软件(及该特定软件执行时所在的任何软件,如访客操作***或超管理器)可自由存取该存储器区域。然而,可假定其他软件无法存取该存储器区域。将了解,有数个不同方式可用以为存储器的特定区域设定许可。除本文中明确说明的那些机制,其他机制将对本领域技术人员显而易见。
装置100还包括传讯电路155。传讯电路155(例如异常控制器)可用于将异常传讯至处理电路105。异常可通过传讯电路155响应于外源、响应于存储器管理单元140、145,及响应于处理电路105自身而经传讯。当异常经传讯时,可由在处理电路105上执行的软件来处理异常。依据异常性质(即,已产生的异常的类型),可由在处理电路105上以特定特权模式执行的软件来处理异常。例如,在外部中止、中断、第二阶段故障,或指令陷阱的情况下,可以不得不由在最高特权等级运行的软件来处理异常,如超管理器或主机操作***。然而,如先前所论述,若例如当处理电路105处于除错状态中时,控制电路135可禁止处理电路105进入特定特权模式。因此,可出现一情境,在该情境中,处理电路105被禁止进入特权模式,而为了响应于已产生的异常,该特权模式是必需的。在一些情况下,有可能改换异常路由,以使得该异常以由控制电路135所允许的更低特权模式被处理。
当除错发生时,处理电路105暂停执行从存储器150获得的指令,并改为执行由除错器110注入的指令。因此,在众多情况下,这将仅足以指示异常已产生。换言之,无需执行由以更高执行特权模式执行的软件所提供的完整异常处理程序。因此,处理异常路由以便指示异常已发生的流程即可足以。具体地,处理路由可允许除错器110的使用者决定由于执行除错器110所注入的最新指令而已发生特定异常,即使不执行完整的异常处理程序亦如此。
尽管如此,对于一些异常而言,这种路由是不充足的。第二阶段故障是一种存储器转换故障。第二阶段故障是由两次存储器转换中的第二者所导致之一种存储器故障。在第一转换中,虚拟地址转换为中间地址,及在第二转换中,中间地址转换为实体地址。例如,第一转换可基于由处理电路响应于以更低特权模式(如访客操作***)执行的软件而设定的第一存储器管理单元140中的第一配置数据,及第二转换可基于由处理电路响应于以更高特权模式执行的软件而设定的第二存储器管理单元145中的第二配置数据。第二阶段故障关于在第二转换期间的故障发生。由于第二转换基于由处理电路响应于以更高的执行特权模式(如超管理器)执行的软件而设定的第二配置数据,因此在不处于除错状态时,第二转换最适合用于该特定软件(例如超管理器)在异常产生时处理异常。又一问题可能出现,因为在将异常改换路由至更低的执行特权模式时,除错器110可能不恰当地决定异常为第一阶段故障,以及由于基于第一存储器管理单元140中的第一配置数据进行的转换而发生的故障。在第1图图示的实施例中,此问题通过传讯电路155对将以更低特权模式处理的第二异常进行传讯,并且还设定标识状态缓存器160中的第一异常(第二阶段故障)类型的信息而得以改善。此特殊“信种”值给予在处于除错状态下时不能出现的值。例如,标识第一异常类型的信息可包括响应于除错事件而产生的除错异常的标识符。因为在所述情况中,处理电路105已处于除错状态,因此通常不可能产生除错异常,因为在除错状态下不会发生更多除错事件。通过经由除错接口115读取状态缓存器160的值,除错器110能够侦测到此特殊值,并且还侦测到所产生的第一阶段故障,以便决定所发生的第二阶段故障。
图2示出了根据一个实施例可在数据处理装置100中执行的不同软件之间的示例性关系。超管理器(或主机操作***)在特权模式EL2中执行。数个访客操作***位于超管理器下,以特权模式EL1执行。然后,数个应用程序在每一访客操作***下在特权模式EL0中执行。此外,数个主机应用程序直接在超管理器下以特权模式EL0运行。在此实例中,特权模式是层级的,因为以特权模式EL2执行的软件具有以特权模式EL1执行的软件的全部特权,而以特权模式EL1执行的软件则具有以特权模式EL0执行的软件的全部特权。超管理器以最高特权等级(EL2)运行,及应用程序以最低特权等级(EL0)运行。因此,超管理器特权模式可符合在除错状态期间禁止处理电路105进入的预定特权模式。其他特权模式排列(例如,那些无层级的特权模式)也是可能的。
图2示出了超管理器模式除错使能信号HIDEN的效应,该使能信号HIDEN是一控制参数的示例。在第2图的实例中,除错使能信号DBGEN控制是否允许进入除错状态。信号HIDEN进一步控制是否允许在除错时在预定特权模式(包括超管理器及主机应用程序执行时所处于的模式)中执行。换言之,当判定HIDEN(等于1)时,允许在处理电路执行超管理器或在超管理器下直接执行的关联主机应用程序的同时进行除错。若否定HIDEN(等于0),则不允许在处理电路执行超管理器或主机应用程序的同时进行除错。这会部分地通过在处于除错状态时阻止处理电路将其特权模式变更至可执行超管理器或主机应用程序的模式而实现,以及还通过在处理电路处于其可执行超管理器或主机应用程序的特权模式中的同时阻止处理电路获得除错状态而实现。只要判定DBGEN(等于1),则允许其他应用程序及任何访客操作***进行除错,无论HIDEN具有何值,即无论控制参数是否具有预定值。当否定DBGEN(等于0)时,不允许在任何特权等级进行除错。
图3示出了流程图200,该图指示根据一个实施例在处理电路105处于除错状态中时接收异常及响应于异常的流程。
流程始于步骤S205,在该步骤中,接收到异常。在步骤S210中,决定异常是否对应于第二阶段故障。若异常不符合第二阶段故障,则在步骤S215中,决定是否应以特权模式EL2处理该异常。如果不应以特权模式EL2处理该异常,则流程前进至步骤S220,在该步骤中,以特权模式EL1处理异常。换言之,若没有变更应该发生异常的等级的原因则产生此情境,及异常将通常以特权模式EL1发生。
或者,如果在步骤S215中决定应该以特权模式EL2处理异常,则在步骤S225中,决定是否允许在处于超管理器执行模式下时执行除错指令。若允许该种执行(即HIDEN=1),则流程前进至步骤S230,在该步骤中,以特权模式EL2处理异常。换言之,如果异常将以特权模式EL2处理,及如果允许以特权模式EL2执行,则实际上以特权模式EL2处理异常。
或者,如果在步骤S225中,处于EL2中的同时不允许执行除错指令(即HIDEN=0),则在步骤S220中,以特权模式EL1处理异常。换言之,如果异常并非第二阶段故障并且应该以特权模式EL2处理异常,但该种执行未经允许,则将异常改换路由至特权模式EL1。
尽管如此,如果在步骤S210中决定异常是第二阶段故障,则流程前进至步骤S235,在该步骤中决定是否允许在处于超管理器执行模式中时执行除错指令。如果可在超管理器模式中执行除错指令(即HIDEN=1),则流程前进至步骤S230,在该步骤中,在特权模式EL2中处理异常,该异常即第二阶段故障。换言之,如果产生第二阶段故障,并且如果在超管理器执行模式下允许进行除错,则在特权模式EL2中处理异常。
或者,如果不允许在超管理器特权模式EL2中执行除错指令(即HIDEN=0),则在步骤S240中储存关于第二阶段故障的信息,并且在步骤S220中,通过在特权模式EL1中产生新的异常而在特权模式EL1中处理异常。
由此可见,当处于除错状态中时,如何基于异常类型(特定而言该异常是否为第二阶段故障)、意欲处理异常的特权模式,及是否允许超管理器除错(例如HIDEN值)来决定处理特定异常的特权模式。
图4示出了流程图300,该图指示根据一个实施例如何接收及响应于变更特权模式的请求。
流程始于步骤S305,在该步骤中,变更特权模式的请求由处理电路105收到(例如通过处理电路105所执行的指令或通过传讯电路155所接收到的外部中断信号触发)。在步骤S310中,判定处理电路105是否处于除错状态中。如果处理电路105并非处于除错状态,则在步骤S320中,依据接收到的请求变更特权模式。此举的原因在于如果不处于除错状态,则尚未出现在预定特权模式中同时发生除错与执行的情况。
或者,如果处理电路105处于除错状态,则在步骤S315中,考虑HIDEN的值。如果HIDEN等于1,则指示在超管理器执行模式中并未禁止除错指令的执行,然后在步骤S320中,将特权模式变更为所请求的特权模式。
或者,如果在超管理器特权模式中去能除错(即HIDEN是0),则在步骤S325中,决定所请求的特权模式是否为EL2。如果所请求的特权模式是EL2,则在步骤S330中,拒绝该请求。换言之,如果在特权模式EL2中不允许执行除错指令、如果所请求的特权模式是EL2、以及若处理电路105已处于除错状态中,则忽视该请求即可。
或者,如果在步骤S325中决定特权模式并非EL2,则在步骤S340中决定所请求的特权模式是否为EL1。如果所请求的特权模式是EL1,则特权模式在步骤S345中变更为EL1。换言之,即使超管理器特权模式的除错被去能(HIDEN=0),则在所请求的特权模式是EL1(即访客操作***模式)的情况下,将特权模式变更为EL1是可接受的。
或者,如果在步骤S340中决定所请求的特权模式并非EL1,则流程前进至步骤S350。在第4图中图示的实施例的步骤S350中,暗示所请求的模式是EL0。同样,因为用于在EL0中变更为主机应用程序的请求通常来自位于EL2的超管理器,并且处理器在处于除错状态中时不能处于超管理器异常等级EL2,因此意味着该请求并非相对于主机应用程序,因此在步骤S355中特权模式变更为EL0。
或者,如果主机应用程序在步骤S350中执行,则在步骤S330中,拒绝变更特权模式的请求。换言之,如果超管理器特权模式中的除错被去能(即HIDEN=0),则不允许对主机应用程序进行除错。此举是因为没有用于处理由于处理除错指令而可发生的异常的机制,及直接在超管理器下运行的主机应用程序的进一步除错可被视为不安全的。
图5示出了流程图400,该图指示根据一个实施例如何接收及响应于进入除错状态的请求。
流程始于步骤S405,在该步骤中,除错状态请求(该请求可为经由除错接口115传递的指令,或另一信号)由处理电路105收到。在步骤S410中,考虑HIDEN值。如果HIDEN等于1,则指示在超管理器执行模式中并未禁止除错指令的执行,然后在步骤S415中,处理电路105根据接收到的请求进入除错状态。
或者,如果在超管理器特权模式中去能除错(即HIDEN是0),则在步骤S420中,决定当前的特权模式(即执行模式)是否为EL2。如果当前的特权模式是EL2,则在步骤S425中,拒绝要求,并且处理电路105未获得除错状态。换言之,如果在特权模式EL2中不允许执行除错指令,并且如果当前的特权模式是EL2,则阻止处理电路进入除错状态。
或者,如果在步骤S420中决定当前的特权模式并非EL2,则在步骤S430中决定当前的特权模式是否为EL1。若当前的特权模式是EL1,则在步骤S435中进入除错状态。换言之,即使超管理器特权模式的除错被去能(HIDEN=0),则在当前的特权模式是EL1(即访客操作***模式)的情况下,进入除错状态是可接受的。
或者,如果在步骤S430中决定当前特权模式并非EL1,则流程前进至步骤S440。在图4示出的实施例的步骤S440中,暗示当前的特权模式是EL0。因此,在步骤S440中,决定主机应用程序当前是否在处理电路105上执行。若并非如此,则在步骤S445中,处理电路105获得除错状态。
或者,如果主机应用程序在步骤S440中执行,则在步骤S425中,拒绝进入除错状态的请求。换言之,如果超管理器特权模式的除错被去能,则不允许对主机应用程序进行除错。这是因为没有用于处理由于处理除错指令而可发生的异常的机制,及直接在超管理器下运行的主机应用程序的进一步除错可被视为不安全的。
在本申请案中,用语“配置以(configured to...)”用以意味着装置组件具有一配置,该配置能够执行所定义的操作。在此上下文中,“配置(configuration)”意味着硬件或软件互连的排列或方式。例如,该装置可具有提供所定义的操作的专用硬件,或处理器或其他处理装置可经程序化以执行该功能。“配置以(“Configured to...)”不暗示需要以任何方式变更装置组件以便提供定义的操作。
尽管本发明的说明性实施例已在本案中通过参考附图进行详细描述,但将理解的是本发明并非限定于彼等精确实施例,并且本领域技术人员在不脱离本发明范畴及精神的情况下可在那些实施例中实现如所附的权利要求所定义多种变更及修改。
Claims (16)
1.一种数据处理装置,包括:
除错接口,所述除错接口用于接收来自除错器的指令;
处理电路,所述处理电路用于在除错状态中执行从所述除错接口接收到的指令;
控制电路,所述控制电路用于在控制参数具有预定值的情况下,在处于所述除错状态时禁止以预定特权模式执行指令;以及
传讯电路,所述传讯电路用于在处于所述除错状态中并且所述控制参数具有预定值时、响应于正在被传讯且将以所述预定特权模式处理的第一异常,传讯将以不同特权模式处理第二异常,并设定标识所述第一异常的类型的信息。
2.如权利要求1所述的装置,其中,如果所述控制参数具有所述预定值并且如果所述处理电路处于所述除错状态,则所述控制电路禁止所述处理电路变更至所述预定特权模式。
3.如权利要求1所述的装置,其中,如果所述控制参数具有所述预定值并且如果所述处理电路处于所述预定特权模式,则所述控制电路禁止所述处理电路进入所述除错状态。
4.如权利要求1所述的装置,其中,所述预定特权模式具有比所述不同特权模式更高的特权等级。
5.如权利要求1所述的装置,包括:
状态寄存器,所述状态寄存器用于储存标识所述第一异常的类型的信息,其中所述状态寄存器可由所述除错接口存取。
6.如权利要求1所述的装置,其中,标识所述第一异常的类型的信息包括与所述除错状态下不可能发生的异常相对应的值。
7.如权利要求6所述的装置,其中,标识所述第一异常的类型的信息包括响应于除错事件而生成的除错异常的标识符。
8.如权利要求1所述的装置,其中,所述第一异常与存储器故障有关。
9.如权利要求1所述的装置,其中,所述第一异常与存储器转换故障有关。
10.如权利要求1所述的装置,其中,所述第一异常是由于以下操作而产生的:在已执行从虚拟地址向中间地址的第一转换之后,尝试执行从所述中间地址向物理地址的第二转换。
11.如权利要求10所述的装置,还包括:
第一存储器管理单元,用以执行所述第一转换,所述第一转换基于由所述处理电路响应于以低于所述预定特权模式的特权模式执行的软件而设定的第一配置数据;以及
第二存储器管理单元,用以执行所述第二转换,所述第二转换基于由所述处理电路响应于以所述预定特权模式执行的软件而设定的第二配置数据。
12.如权利要求1所述的装置,
其中所述预定特权模式是超管理器特权模式;并且
其中所述不同特权模式是访客操作***特权模式。
13.如权利要求1所述的装置,
其中所述预定特权模式包括超管理器特权模式和另一模式,该另一模式是用于直接在以所述超管理器特权模式执行的软件下的应用的执行的模式;以及
其中所述不同特权模式是访客操作***特权模式。
14.如权利要求12所述的装置,
其中,如果所述处理电路处于所述除错状态并且所述控制参数不具有所述预定值,则所述控制电路将允许所述处理电路进入所述预定特权模式。
15.如权利要求1所述的装置,
其中,当所述处理电路处于所述除错状态并且所述控制参数不具有所述预定值时,响应于正在被传讯的将以所述预定特权模式处理的第三异常,所述传讯电路传讯将以所述不同特权模式处理第四异常,并且不设定标识所述第三异常的类型的信息。
16.一种用于操作具有除错状态的处理电路的方法,该处理电路用于执行自除错接口接收到的指令,其中,如果控制参数具有预定值,则所述处理电路被禁止在处于所述除错状态中时以预定特权模式执行指令,所述方法包括以下步骤:
接收信号,所述信号指示将以所述预定特权模式处理的第一异常已产生;
如果在所述处理电路处于所述除错状态中并且所述控制参数具有所述预定值的情况下、接收到指示所述第一异常已产生的所述信号,则传讯将以不同特权模式处理第二异常;以及
设定标识所述第一异常的类型的信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1416010.5 | 2014-09-10 | ||
GB1416010.5A GB2530050B (en) | 2014-09-10 | 2014-09-10 | Debugging in a data processing apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105404559A CN105404559A (zh) | 2016-03-16 |
CN105404559B true CN105404559B (zh) | 2020-07-07 |
Family
ID=51796483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510542202.3A Active CN105404559B (zh) | 2014-09-10 | 2015-08-28 | 在数据处理装置中进行除错 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9652348B2 (zh) |
EP (1) | EP2996043B1 (zh) |
KR (1) | KR102376583B1 (zh) |
CN (1) | CN105404559B (zh) |
GB (1) | GB2530050B (zh) |
TW (1) | TWI678615B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11328054B2 (en) * | 2018-12-21 | 2022-05-10 | Netiq Corporation | Preventing access to single sign on credentials associated with executing applications |
US11010280B1 (en) * | 2019-03-13 | 2021-05-18 | Parallels International Gmbh | System and method for virtualization-assisted debugging |
US11734457B2 (en) * | 2019-12-23 | 2023-08-22 | Intel Corporation | Technology for controlling access to processor debug features |
US11704253B2 (en) * | 2021-02-17 | 2023-07-18 | Microsoft Technology Licensing, Llc | Performing speculative address translation in processor-based devices |
CN112965438B (zh) * | 2021-02-20 | 2022-05-03 | 武汉卓尔信息科技有限公司 | 一种工业流程控制管理方法及装置 |
CN117272412B (zh) * | 2023-11-21 | 2024-03-15 | 芯来智融半导体科技(上海)有限公司 | 中断控制寄存器保护方法、装置、计算机设备及存储介质 |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4525780A (en) * | 1981-05-22 | 1985-06-25 | Data General Corporation | Data processing system having a memory using object-based information and a protection scheme for determining access rights to such information |
US5638525A (en) * | 1995-02-10 | 1997-06-10 | Intel Corporation | Processor capable of executing programs that contain RISC and CISC instructions |
US5704034A (en) * | 1995-08-30 | 1997-12-30 | Motorola, Inc. | Method and circuit for initializing a data processing system |
US5737516A (en) * | 1995-08-30 | 1998-04-07 | Motorola, Inc. | Data processing system for performing a debug function and method therefor |
US5828824A (en) * | 1996-12-16 | 1998-10-27 | Texas Instruments Incorporated | Method for debugging an integrated circuit using extended operating modes |
US6065106A (en) * | 1996-12-20 | 2000-05-16 | Texas Instruments Incorporated | Resuming normal execution by restoring without refetching instructions in multi-word instruction register interrupted by debug instructions loading and processing |
GB2329049B (en) * | 1997-09-09 | 2002-09-11 | Advanced Risc Mach Ltd | Apparatus and method for identifying exceptions when debugging software |
US6557116B1 (en) * | 1999-02-19 | 2003-04-29 | Texas Instruments Incorporated | Emulation suspension mode with frame controlled resource access |
US6757846B1 (en) * | 2000-11-06 | 2004-06-29 | Xilinx, Inc. | Method and apparatus for multi-bus breakpoint stepping |
US6751751B1 (en) * | 2000-11-06 | 2004-06-15 | Xilinx, Inc. | Universal multi-bus breakpoint unit for a configurable system-on-chip |
US6691251B2 (en) * | 2000-11-30 | 2004-02-10 | Palmsource, Inc. | On-chip debugging system emulator |
US7093236B2 (en) * | 2001-02-01 | 2006-08-15 | Arm Limited | Tracing out-of-order data |
US6931631B2 (en) * | 2001-06-27 | 2005-08-16 | International Business Machines Corporation | Low impact breakpoint for multi-user debugging |
US7383587B2 (en) * | 2002-11-18 | 2008-06-03 | Arm Limited | Exception handling control in a secure processing system |
US7117284B2 (en) * | 2002-11-18 | 2006-10-03 | Arm Limited | Vectored interrupt control within a system having a secure domain and a non-secure domain |
AU2003278342A1 (en) * | 2002-11-18 | 2004-06-15 | Arm Limited | Security mode switching via an exception vector |
GB2411254B (en) * | 2002-11-18 | 2006-06-28 | Advanced Risc Mach Ltd | Monitoring control for multi-domain processors |
KR100941104B1 (ko) * | 2002-11-18 | 2010-02-10 | 에이알엠 리미티드 | 데이터 처리 장치, 데이터 처리 방법 및 컴퓨터 프로그램을 기억한 컴퓨터 판독가능한 기억매체 |
GB2396451B (en) * | 2002-11-18 | 2005-12-07 | Advanced Risc Mach Ltd | Delivering data processing requests to a suspended operating system |
US7127639B2 (en) * | 2002-11-22 | 2006-10-24 | Texas Instruments Incorporated | Distinguishing between two classes of trace information |
US6981178B2 (en) * | 2002-11-22 | 2005-12-27 | Texas Instruments Incorporated | Separation of debug windows by IDS bit |
US7302690B2 (en) * | 2003-07-31 | 2007-11-27 | International Business Machines Corporation | Method and apparatus for transparently sharing an exception vector between firmware and an operating system |
US7814308B2 (en) * | 2004-08-27 | 2010-10-12 | Microsoft Corporation | Debugging applications under different permissions |
US7487341B2 (en) * | 2006-06-29 | 2009-02-03 | Intel Corporation | Handling address translations and exceptions of a heterogeneous resource of a processor using another processor resource |
JP2008090390A (ja) * | 2006-09-29 | 2008-04-17 | Matsushita Electric Ind Co Ltd | マイコンデバッグシステムおよびマイクロコンピュータ |
EP2075696A3 (en) * | 2007-05-10 | 2010-01-27 | Texas Instruments Incorporated | Interrupt- related circuits, systems and processes |
US7730248B2 (en) * | 2007-12-13 | 2010-06-01 | Texas Instruments Incorporated | Interrupt morphing and configuration, circuits, systems and processes |
US7984352B2 (en) * | 2008-10-06 | 2011-07-19 | Texas Instruments Incorporated | Saving debugging contexts with periodic built-in self-test execution |
US8856742B2 (en) | 2010-06-11 | 2014-10-07 | International Business Machines Corporation | Distributed debugging |
GB2482701C (en) * | 2010-08-11 | 2018-12-26 | Advanced Risc Mach Ltd | Illegal mode change handling |
GB2483906C (en) * | 2010-09-24 | 2019-10-09 | Advanced Risc Mach Ltd | Selection of debug instruction set for debugging of a data processing apparatus |
GB2483907A (en) | 2010-09-24 | 2012-03-28 | Advanced Risc Mach Ltd | Privilege level switching for data processing circuitry when in a debug mode |
GB2487575B (en) * | 2011-01-28 | 2017-04-12 | Advanced Risc Mach Ltd | Controlling generation of debug exceptions |
EP2847681B1 (en) * | 2012-05-07 | 2019-08-07 | Microchip Technology Incorporated | Device having configurable breakpoint based on interrupt status |
US9471411B2 (en) * | 2013-01-23 | 2016-10-18 | International Business Machines Corporation | Monitoring and capturing early diagnostic data |
US10061940B2 (en) * | 2013-07-09 | 2018-08-28 | Andes Technology Corporation | Secure protection processor and method including comparing an instruction security attribute of an instruction and a security attribute of an operational event |
US9740644B2 (en) * | 2014-09-26 | 2017-08-22 | Intel Corporation | Avoiding premature enabling of nonmaskable interrupts when returning from exceptions |
US9612939B2 (en) * | 2014-10-29 | 2017-04-04 | Microsoft Technology Licensing, Llc. | Diagnostic workflow for production debugging |
-
2014
- 2014-09-10 GB GB1416010.5A patent/GB2530050B/en active Active
-
2015
- 2015-07-23 TW TW104123919A patent/TWI678615B/zh active
- 2015-08-12 US US14/824,299 patent/US9652348B2/en active Active
- 2015-08-14 EP EP15181140.3A patent/EP2996043B1/en active Active
- 2015-08-18 KR KR1020150115780A patent/KR102376583B1/ko active IP Right Grant
- 2015-08-28 CN CN201510542202.3A patent/CN105404559B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
TW201610672A (zh) | 2016-03-16 |
KR102376583B1 (ko) | 2022-03-21 |
KR20160030440A (ko) | 2016-03-18 |
CN105404559A (zh) | 2016-03-16 |
US20160070630A1 (en) | 2016-03-10 |
GB2530050B (en) | 2021-07-21 |
GB2530050A (en) | 2016-03-16 |
US9652348B2 (en) | 2017-05-16 |
EP2996043B1 (en) | 2022-02-23 |
EP2996043A1 (en) | 2016-03-16 |
TWI678615B (zh) | 2019-12-01 |
GB201416010D0 (en) | 2014-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105404559B (zh) | 在数据处理装置中进行除错 | |
TWI655643B (zh) | 用於辨識對應目標記憶體位址之記憶體屬性單元之區域之區域辨識操作 | |
US8332660B2 (en) | Providing secure services to a non-secure application | |
US9703957B2 (en) | Atomic detection and repair of kernel memory | |
US20160210069A1 (en) | Systems and Methods For Overriding Memory Access Permissions In A Virtual Machine | |
US10140448B2 (en) | Systems and methods of asynchronous analysis of event notifications for computer security applications | |
KR102192835B1 (ko) | 데이터 처리장치에서의 소프트웨어 라이브러리들의 보안 보호 | |
JP2013250980A (ja) | プロセッサ資源および実行保護の方法および装置 | |
JP5951879B2 (ja) | オペレーティングシステムに対する悪意ある活動のレポート | |
KR20160146967A (ko) | 하드웨어 구성 보고 시스템 | |
KR20140005978A (ko) | 디버그 예외 생성 제어 | |
US9536084B1 (en) | Systems and methods for delivering event-filtered introspection notifications | |
US9596261B1 (en) | Systems and methods for delivering context-specific introspection notifications | |
TW202029045A (zh) | 驗證堆疊指標 | |
TW202129491A (zh) | 域轉換禁用配置參數 | |
US9798646B2 (en) | Performance monitoring in a data processing apparatus capable of executing instructions at a plurality of privilege levels | |
KR102547479B1 (ko) | 명령 세트의 변경을 제어하는 장치 및 방법 | |
CN114282206A (zh) | 栈溢出检测方法、装置、嵌入式***和存储介质 | |
US9531735B1 (en) | Systems and methods for delivering introspection notifications from a virtual machine | |
US8689206B2 (en) | Isolating operating system in-memory modules using error injection | |
US20180260563A1 (en) | Computer system for executing analysis program, and method of monitoring execution of analysis program | |
KR101014814B1 (ko) | 커널 감시기가 설치된 컴퓨터 시스템 및 커널 감시 방법 | |
KR20190059955A (ko) | 작업 메모리 보호 방법 및 그 장치 | |
JP2008077388A (ja) | マルチプロセッサ制御システム、方法、およびプログラム | |
CN110799940B (zh) | 内容数据管理 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |