调试辅助装置及用于在计算机中执行调试处理方法的程序的制作方法

文档序号:6618555阅读:218来源:国知局
专利名称:调试辅助装置及用于在计算机中执行调试处理方法的程序的制作方法
技术领域
本发明涉及用于调试处理程序的调试辅助装置及用于在计算机中执 行调试处理方法的程序,特别是涉及调试处理在具备多个处理器的多处理 器形式的处理器中被执行的程序的调试辅助装置及用于在计算机中执行 调试处理方法的程序。
背景技术
现在,在计算机的软件开发中使用一种被称为调试器的工具。调试器 用于使计算机的处理器、存储器模拟的动作,使计算机具有程序的中断、 断点的设定、单步执行的功能。调试器有只用软件安装的在线调试器和与硬件组合安装的ICE (In—Circuit Emulator)。ICE虽然高性能,但价格也高。另外,在线调试器与ICE相比虽然很 便宜,但还不具有与ICE同等的性能。利用调试器,在程序中设定被称为断点的程序中断功能。当断点被执 行时,起动调试器,在调试器起动的时刻,可参照处理器具备的寄存器、 存储器、1/0,进行变更。然而,近年来,有组合多个处理器,使多个处理器并行动作的处理器。 这样的处理器有多线程处理器、多处理器。在本说明书中,将组合多线程 处理器、多处理器等的多个处理器的处理器进行统称,记为多处理器系统。在辅助多处理器系统的调试作业的情况下,存在当1个处理器中发生 断点时,也停止其他的处理器,把握在多处理器系统中被执行的全部处理 器的程序状态的技术。作为这样的以往技术,例如有专利文献l。专利文献l,当作为调试器对象的处理器到达断点、发出停止信号时, 停止系统时钟。另外,在此时刻使系统全体的全部构成要素的动作同时停 止,读出停止时的全部处理器的存储器、寄存器的内容、其他的硬件模块 的寄存器的内容等。这样的专利文献l,当发生了断点时,不光是处理器, 也能观测包含其他硬件模块的系统内的动作状况。专利文献1:特开平5—313946号公报然而,专利文献l的发明,由于断点命令会引起软件的发生异常,时 钟控制部停止系统时钟,所以在一次的处理中不能停止多个处理器。另外, 处理器的停止在机器周期的断点等处进行。由此,在多处理器系统调试辅 助领域中,期望更有效地使发生了断点的处理器和其他处理器停止时刻一 致的技术。发明内容本发明正是鉴于以上的问题而提出的,其目的在于,提供一种能够几 乎同时且有效地停止多处理器系统中包含的多个处理器,适用于能够把握 断点发生时的各处理器状态的多处理器系统的调试辅助装置及用于在计 算机中执行调试处理方法的程序。为了解决以上的问题,本发明的调试辅助装置,对由多个单位处理器 组成的多处理器进行调试处理,多个上述单位处理器,按每个线程执行程 序,且具备单位处理器停止机构,其通过在上述线程中一部分线程由于 断点而发生软件的异常处理时,使多个上述单位处理器中的任一个执行让 执行了发生异常处理线程的单位处理器以及执行其他的线程的单位处理 器停止的处理而实现;和调试执行机构,其执行检测有关由上述单位处理 器停止机构停止的多个上述单位处理器的状态的信息的调试处理。另外,本发明的调试辅助装置,上述调试执行机构,在执行了发生异 常处理的线程的单位处理器中,执行上述调试处理。另外,本发明的调试辅助装置,上述调试执行机构,在执行了发生异 常处理的线程的单位处理器以外的单位处理器上,执行上述调试处理。另外,本发明的调试辅助装置,具备单位处理器选择机构,其选择由 上述调试执行机构组成的上述调试处理执行中使用的单位处理器,该单位 处理器选择机构,选择在线程的处理中还未被使用的单位处理器。另外,用于在计算机中执行本发明的调试处理方法的程序,用于在计 算机中执行调试处理方法,该调试处理方法适用于对由多个单位处理器组 成的多处理器进行调试处理的调试辅助装置,调试处理方法包括单位处 200780000076.2说明书第3/10页理器停止步骤,当通过多个上述单位处理器,按每个线程执行的程序的一 部分发生了由断点引起软件的异常处理时,使多个所述单位处理器中的任 一个执行让执行了发生异常处理线程的单位处理器以及执行其他的线程的单位处理器停止的处理;和调试执行步骤,其执行调试处理,用来检测 由上述单位处理器停止步骤所停止的多个上述单位处理器的状态相关信 息。


图1是用于说明本发明的实施方式1、实施方式2的调试辅助装置的 方框图。图2是图1所示的在线调试器的功能方框图。图3是用于说明在本发明的实施方式1的多处理器上执行的多个线程 和在线调试器的关系的图。图4是用于说明用于在计算机上执行图3说明的实施方式1的调试辅 助方法的程序的流程图。图5是用于说明用于在计算机上执行图3中说明过的本发明的实施方 式1的调试辅助方法的程序的其他的流程图。图6是用于说明在本发明的实施方式2的多处理器上执行的多个线程 和在线调试器的关系的图。图7是用于说明用于在计算机上执行本发明的实施方式2的调试辅助 方法的程序的流程图。图8是用于说明用于在计算机上执行本发明的实施方式2的调试辅助 方法的程序的其他的流程图。
具体实施方式
以下,参照附图,说明关于本发明的调试辅助装置及用于在计算机上 执行调试处理方法的程序的实施方式l、实施方式2。 (实施方式1)图1是本发明的实施方式1、实施方式2通用的图,是用于说明调试 辅助装置的方框图。图示的调试辅助装置,适用于由多个单位处理器组成 的多处理器系统。实施方式1中例举的多处理器系统,具备多个处理器(由于是构成多处理器系统的处理器,所以记为单位处理器)P0 P3。单位处理器P0 P3,以将共用存储器102共用那样,构成被组合的多处理器。还有,将多 处理器的只处理器的部分,作为处理器部101在图中进行了表示。单位处理器P0 P3,具有各个状态寄存器(PSR)。 PSR是存储单位 处理器P0 P3的状态的寄存器。所谓状态,例如单位处理器的中断的可 否状态、单位处理器的溢出的发生状态等,是存储有关单位处理器状态的 信息的寄存器。另外,在多处理器中执行的程序,以线程单位分配,单位处理器PO P3,按每个线程都执行程序。还有,线程的语句,指程序的单位,同时也 指本说明书中线程单位的程序。实施方式1的调试辅助装置,当通过单位处理器P3执行的线程中, 由于其一部分线程的断点发生了软件的异常处理时,具备与执行了发生异 常处理线程的单位处理器一起使执行其他线程的单位处理器同时停止的 在线调试器201。在线调试器201,是以处理器部101为目标,辅助程序的错误的发现、 修正的软件,被保存在共用存储器102中。对于在线调试器201的指示, 通过未图示的软件,PC变为调试器加以实施。实施例1的调试辅助装置,可只由在线调试器201和PC的软件构成。 因此,实施方式1的调试辅助装置,与使用了硬件装置的调试器相比,能 够很便宜地制造出来。在线调试器201上被插入了用于强制停止线程的执行的强制执行停止 代码(断点命令)。由单位处理器P0 P3组成的线程的处理,在断点命令 执行时,通过在线调试器201中止。在本说明书中,线程的执行中止也记 为软件的异常处理。还有,线程的执行中止,通过对单位处理器P0 P3的中断来实施。 在实施例1中,用于中断的中断表格103,保存在共用存储器102上。还有,中断表格103是按照中断的顺序管理中断处理的表格。多处理 器未图示的中断控制部,在根据中断处理、处理中线程的优先度请求的中 断上,附以序号,追加到中断表格103中。这样的中断表格103,也被用 于对于多处理器的其他的中断中。图2是在线调试器201的功能方框图。在线调试器201具备中断控制 部203和调试信息检查部204。中断控制部203是参照中断表格103,对 单位处理器P0 P3进行中断处理的程序。调试信息检查部204,是在被 停止的单位处理器P0 P3的至少一个上,检测有关被停止的多个处理器 的状态的信息(以下记为调试信息)的程序。这样的在线调试器201,在 实施方式1中发挥作为单位处理器停止机构及调试执行机构的功能。调试的执行,通过调试信息检查部204访问状态寄存器R0 R3、将 调试信息保存到共用存储器102上来实施。为了调试的执行,实施方式l 的调试辅助装置,在共用存储器102内具备由在线调试器201管理的管理 区域106。在共用存储器102内的管理区域106,也可参照单位处理器P0 P3中的任意一个。在管理区域106上,存在写入表示在线调试器201的状态的起动标志 的起动标志区域,和写入被检测的单位处理器P0 P3的信息的寄存器区 域。图3是用于说明在多处理器上执行的多个线程和在线调试器的实施方 式1中的关系的图。在实施方式1中,如图所示那样,在线调试器201, 在执行发生了异常处理线程的单位处理器以外的单位处理器上,执行调试 处理。也就是说,在图3的例子中,在多处理器上执行线程l (线程S1)、 线程2 (线程S2)、线程3 (线程S3)。在实施方式l中,在线程S1上发 生了软件的异常,在线调试器201在线程S2上起动。线程S2通过异常的发生,使在线调试器201起动,使线程S1、线程 S3停止的同时,本线程也停止。在线调试器201,等待执行线程Sl、线 程S3的处理器的停止,执行在线调试。在线调试器201,可通过在线调试, 参照记录在线程S1、线程S3的状态寄存器等上的信息,把握断点处的多 个线程的状态。在线调试器的动作结束后,在线调试器201,再起动线程Sl、线程 S2、线程S3的处理。执行了线程S1的单位处理器、执行了线程S3的单 位处理器,在在线调试器201引起的再起动处理的之前的期间t,处于停 止。图4、图5是用于说明用于在计算机中执行图3说明的本发明的实施 方式1的调试辅助方法的程序的流程图。图4表示了从断点到执行在线调 试的处理。另外,图5是用于说明从在线调试结束到返回发生异常以前的 处理所执行的程序的流程图。本实施方式的多处理器,当在多处理器的任意一个线程中执行断点 时,通过在线调试器201进行控制。在线调试器201,在多处理器上的线 程的任意一个上执行。在实施方式1中,使用多个线程中未进行处理的空线程,使在线调试 器20L动作。这样的实施方式l,起到能够有效地活用线程及处理线程的 单位处理器的效果。还有,空线程的检测,例如可通过在线调试器201的调试信息检査部 204,定期地检查单位处理器P0 P3的状态寄存器R0 R3,测试状态寄 存器变成了 HALT状态的单位处理器。象上述那样的构成时,主要是调试信息检査部204,发挥作为单位处 理器选择机构的功能。在多处理器所具备的多个单位处理器中,当在一个单位处理器(单位 处理器PO)上发生软件异常时,在处于HALT状态的其他单位处理器(单 位处理器P1)上被处理的线程的控制,转移到在线调试器201上(S301)。 '单位处理器PI,将保存在状态寄存器R1、程序ih数器(未图示> 等 上的信息,保存到管理区域106的寄存器区域上(S302)。而且,判断在 线调试器201是否已经被起动(S303)。还有,此判断,参照写入到管理 区域106的起动标志区域的起动标志进行。当起动标志表示了在线调试器已起动时(S303: Yes),在线调试器201 中止处理。另一方面,当在线调试器201还未起动时(S303: Yes)、在起动标志 区域上写入表示在线调试器201起动的标志(S304)。中断控制部203,中 断控制部203,向单位处理器P1以外的单位处理器(其他的处理器)请求 中断处理、停止(S305)。而且,参照单位处理器PO、 P2、 P3的状态寄存
器,判断单位处理器PO、 P2、 P3是否己停止(S306)。当步骤S306的判断结果,判断单位处理器P0、P2、P3已停止时(S306: Yes),在线调试器201,在单位处理器P1上执行调试动作(S307)。另外,如图5所示,调试处理结束后,在线调试器201,向单位处理 器PO、 P2、 P3请求动作的执行(再起动)(S501)。而且,清除起动标志 区域上被写入的起动标志(S502)。还有,使保存的调试信息等返回到状 态寄存器ri中等,使单位处理器Pl返回到软件发生异常之前的状态 (S503)。以上所述的实施方式1,在发生了异常处理时刻,在一次的处理中几 乎同时停止了包含在多处理器中的多个单位处理器P0 P3,并能够检测 各单位处理器的信息。因此,能够几乎同时停止包含在多处理器系统中的 多个单位处理器,把握断点发生时的各处理器的状态。另外,由于实施方 式1能够在一次的处理中使多个单位处理器停止,所以能够有效地进行单 位处理器停止的处理。另外,实施方式1通过在单位处理器P0 P1中进行中断处理,使线 程的执行停止。因此,能够从发生异常开始,迅速地停止线程。这样的实 施方式1,能够更加有效地提高停止多个单位处理器的处理的效率。 (实施方式2)以下,针对本发明的实施方式2,进行说明。实施方式2的调试辅助 装置,具有与实施方式l中说明的调试辅助装置相同的构成。因此,在实 施方式2中,省略了一部分调整辅助装置构成的图示及其说明。实施方式2的调试辅助装置,在线调试器在执行了发生异常处理的线 程的单位处理器上,执行调试处理这点上,与实施方式l不同。图6是用于说明在多处理器上执行的多个线程和在线调试器的实施方 式2中的关系的图。在实施方式2中,如图示那样,在线调试器201,在 执行了发生异常处理的线程的单位处理器上,执行调试处理。也就是说,在图6的例子中,在多处理器上执行线程l (线程S1)、 线程2 (线程S2)、线程3 (线程S3)。在图6的例子中,在线程S1上发 生了软件的异常,在线调试器201在线程S1上起动。线程S1通过异常的发生,使在线调试器201起动,使线程S2、线程S3停止的同时,本线程也停止。在线调试器201,等待执行线程S2、线 程S3的处理器的停止,执行在线调试。在线调试器201,通过在线调试, 参照记录在线程S2、线程S3的状态寄存器等上的信息,能够把握断点处 的多个线程的状态。在线调试器的动作结束后,在线调试器201,再起动线程Sl、线程 S2、线程S3的处理。执行线程S2的单位处理器、执行线程S3的单位处 理器,在在线调试器201引起的再起动处理之前的期间,处于停止。图7、图8是用于说明用于在计算机中执行图6说明的本发明的实施 方式2的调试辅助方法的程序的流程图。图7 (a)表示了从起动在线调试 器的单位处理器(单位处理器PO)断点到执行在线调试的处理。另外,(b) 是用于说明在单位处理器PO上,从在线调试结束到返回到发生异常以前 的处理中所执行的程序的流程图。图8 (a)表示了从单位处理器PO以外的单位处理器P1 P3的断点 到执行在线调试的处理。另外,(b)是用于说明在单位处理器P1 P3上, 从在线调试结束到返回到发生异常以前的处理中所执行的程序的流程图。当在单位处理器PO上发生软件的异常时,在单位处理器PO上被处理 的线程的控制转移到在线调试器201上(S701)。在线调试器201,将保存在状态寄存器RO、程序计数器(未图示)等 上的信息,保存到管理区域106的寄存器区域上(S702)。而且,在起动 标志区域上写入表示在线调试器201起动的标志(S703)。中断控制部203, 向单位处理器PO以外的单位处理器(其他的处理器)请求中断处理、停 止(S704)。而且,参照单位处理器P1、 P2、 P3的状态寄存器,判断单位 处理器P1、 P2、 P3是否已停止(S705)。当步骤S705的判断结果,判断单位处理器P1、P2、P3已停止时(S705: Yes),在线调试器201,在单位处理器PO上执行调试动作(S706)。另外,如图7 (b)所示,调试处理结束后,在线调试器201,向单位 处理器P1、 P2、 P3请求动作的执行(再起动)(S710)。而且,清除起动 标志区域上被写入的起动标志(S711)。还有,使保存的调试信息等返回 到状态寄存器RO中,使单位处理器PO返回到软件发生异常之前的状态 (S713)。
另外,单位处理器PO以外的单位处理器P1 P3,如图8 (a)所示, 通过在线调试器201停止。停止后,单位处理器P1 P3的控制,转移到 在线调试器201中(S801)。接着,在线调试器201,将保存在状态寄存器 RO、程序计数器(未图示)等上的信息保存到管理区域106的寄存器区域 上(S802),结束处理。如图8 (b)所示,单位处理器PO上的调试处理结束后,单位处理器 P1 P3,根据在线调试器201的请求,使调试信息等返回到状态寄存器 R1 R3上等(S810)。通过此处理,处理器P1 P3,返回到发生软件异 常以前的状态(S811)。以上所述的实施方式2,选择线程的处理中未被使用的单位处理器作 为调试处理的执行中使用的单位处理器。由此,能够降低由于调试被停止 的线程的数目,缩短调试花费的时间等,更加提高调试的效率。还有,在计算机中执行图4 图8所述的调试处理方法的程序,利用 可安装形式或可执行形式的文件,记录在CD—ROM、软盘(注册商标) (FD)、 DVD等的计算机可读取的记录媒体上进行提供。另外,也可使在 计算机上执行本实施方式的调试处理方法的程序,存储在连接因特网等的 网络的计算机上,通过经由网络下载进行提供那样构成。还有,用于在计 算机上执行本实施方式的调试处理方法的程序,也可记录在用计算机可读 取的ROM、闪存器、存储卡、USB连接型闪存器等的存储设备上加以提 供。产业上的可用性通过本发明,当通过多个单位处理器执行的多个线程中,由于一部分 线程的断点发生了软件的异常处理时,能够与执行了发生异常处理的线程 的单位处理器一起使执行其他线程的单位处理器同时停止。而且,能够执 行检测有关被停止的多个单位处理器的状态的信息的调试处理。因此,在发生了异常处理的时刻,能够几乎同时停止多处理器中包含 的多个单位处理器,检测各单位处理器的信息。这样的发明,可以说几乎 同时且有效地停止多处理器系统中包含的多个处理器,提供能够把握断点 发生时的各单位处理器的状态的调试辅助装置。另外,可去掉选择充当调试处理的单位处理器的处理,在发生异常后
马上起动调试器。另外,也可选择对执行调试处理适当的单位处理器,执行调试处理。 通过选择适当的单位处理器,能够更加提高多处理器的调试效率。另外,能够降低由于调试被停止的线程的数目,更加提高多处理器的 调试的效率。另外,通过本发明,当通过多个单位处理器执行的多个线程中,由于 一部分线程的断点发生了软件的异常处理时,能够使执行了发生异常处理 的线程的单位处理器和执行其他线程的单位处理器同时停止。而且,能够 执行检测有关被停止的多个单位处理器的状态的调试处理因此,在发生了异常处理的时刻,在一次的处理中几乎同时停止多处 理器中所包含的多个单位处理器,检测各单位处理器的信息。这样的本发 明,可以说几乎同时且有效地停止多处理器系统中所包含的多个处理器, 能够提供用于在计算机中执行的能够正确地把握断点发生时的各处理器 状态的调试辅助方法的程序。
权利要求
1. 一种调试辅助装置,对由多个单位处理器组成的多处理器进行调试处理,多个上述单位处理器,按每个线程执行程序,上述调试辅助装置具备单位处理器停止机构,其在上述线程中一部分线程由于断点而发生软件的异常处理时,使多个上述单位处理器中的任一个执行让执行了发生异常处理线程的单位处理器以及执行其他的线程的单位处理器停止的处理;和调试执行机构,其执行调试处理,用来检测由上述单位处理器停止机构停止的多个上述单位处理器的状态的相关信息。
2、 根据权利要求l所述的调试辅助装置,其特征在于,上述调试执行机构,在执行了发生异常处理的线程的单位处理器中, 执行上述调试处理。
3、 根据权利要求l所述的调试辅助装置,其特征在于,上述调试执行机构,在执行了发生异常处理的线程的单位处理器以外 的单位处理器中,执行上述调试处理。
4、 根据权利要求3所述的调试辅助装置,其特征在于, 具备单位处理器选择机构,其用于选择上述调试执行机构在上述调试处理的执行中所使用的单位处理器,该单位处理器选择机构,选择在线程的处理中未被使用的单位处理器。
5、 一种用于在计算机中执行调试处理方法的程序,该调试处理方法 适用于对由多个单位处理器组成的多处理器进行调试处理的调试辅助装 置,调试处理方法包括单位处理器停止步骤,当通过多个上述单位处理器按每个线程执行的程序的一部分中发生了由断点引起软件的异常处理 时,使多个上述单位处理器中的任一个执行让执行了发生异常处理线程的单位处理器以及执行其他的线程的单位处理器停止的处理;和调试执行步 骤,其执行调试处理,用来检测由上述单位处理器停止步骤所停止的多个 上述单位处理器的状态的相关信息。
全文摘要
一种调试辅助装置,在调试处理由多个单位处理器(P0~P3)组成的多处理器的调试辅助装置中,在线调试器(201),当由多个单位处理器(P0~P3)执行的线程中,由于一部分线程的断点,发生了软件的异常处理时,使执行发生了异常处理线程的单位处理器和执行其他线程的单位处理器同时停止,在被停止的至少一个单位处理器上,检测有关被停止的多个单位处理器(P0~P3)的状态的调试信息,执行调试处理。
文档编号G06F11/28GK101213523SQ20078000007
公开日2008年7月2日 申请日期2007年1月11日 优先权日2006年1月11日
发明者田中克哉, 轰晃成 申请人:精工爱普生株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1