一种网络计算机系统行为远程调试方法及其装置的制作方法

文档序号:6579729阅读:144来源:国知局
专利名称:一种网络计算机系统行为远程调试方法及其装置的制作方法
技术领域
本发明涉及一种在网络计算机平台的调试方法,特别是涉及在网络计算机本地资
源有限制的情况下实现远程地对系统行为进行跟踪、调试的方法。
背景技术
在计算机软硬件设计过程中,调试是非常重要的一个环节。调试技术经过几十年 的发展,已经取得了长足的进步。从系统芯片的设计到系统软件开发,根据不同层次的调试 需求,均有不同的调试方法与调试工具支持。对硬件的调试工具一般都和硬件本身捆绑在 一起,形成硬件一级,尤其是芯片一级的功能测试与调试模块,通常有一些功能部件,专门 用来验证硬件的正确性;软件方面,由于调试技术与调试理论的积累,调试工具的功能十分 丰富。很多高级语言开发环境,都有对应的调试工具,提供源代码级的调试,形成整合开发 环境(Integrated Develop Environment, IDE)。此外,也有一些专门支持调试的软件,可 以对C/C++等高级语言编写的程序进行调试,也可以对汇编语言编写的程序进行调试。已 有的软件调试方法在通用计算机桌面系统环境中得到了广泛应用。网络计算机系统的调试 需求,对现有调试工具和调试方法提出了新的挑战。 通用计算机软件一般在同一台机器上进行编辑、编译、调试;嵌入式平台由于其目 标系统多为特殊的专用系统,通常采用调试主机/目标板开发环境(图l),借助通用计算 机作为编辑源文件的调试主机,利用交叉编译器在调试主机上编译生成目标板的可执行代 码,调试时通过通信接口将目标代码下载到目标系统上运行,利用交叉调试器进行跟踪调 试。网络计算机系统通常本地会运行完整的操作系统,既有本地应用程序,也可以作为服务 器的终端使用。调试在整个网络计算机系统的开发中占有很重要的地位。 一般来说,根据 实际的需求可以在不同的级别进行。对于硬件级调试,可以使用一般嵌入式平台主机/目 标板调试环境;对于操作系统之上运行的应用程序,可以使用通用计算机的各种调试软件。 然而,对于网络计算机系统级别的调试,现有的调试方法均不能很好的满足调试需求。
网络计算机的调试需要对系统行为出现的故障进行快速的分析与判断,这时首先 应该考虑的不是系统本身的指令执行错误,而是系统内部,以及系统与周围环境之间的交 互出现了与预期不一致的现象,这就要求调试工具能够从较高层次获取、记录和分析系统 行为,以便从系统的宏观行为判断系统出现故障或性能低下的原因;同时,系统的宏观行为 往往涉及多个子系统,调试工具应该并且能够覆盖多个子系统,以获取综合而全面的信息。
网络计算机的调试与评测机制的设计,还必须考虑到软硬件限制和整体的运行环 境。网络计算机的硬件资源有限,对于大量的调试统计信息而言,不可能存储在本地非易失 存储介质或者内存中;而且,若系统运行中发生故障,则无法从失去响应的系统中获取这些 信息。另外,网络计算机的很多应用具有交互性,在一些环境中还具有一定的实时性,因此 系统调试与评测工具不能对网络计算机的性能造成较大的影响,这会不利于系统开发人员 对设计进行正确评测。

发明内容
本发明所要解决的技术问题在于提供一种网络计算机系统行为远程调试方法及 其装置,用于解决现有技术中在网络计算机本地资源有限制的情况下无法远程地对系统行 为进行跟踪、调试的问题。 为了实现上述目的,本发明提供了一种网络计算机系统行为远程调试方法,用于 对网络计算机的系统行为进行调试,其特征在于,包括 步骤一,跟踪所述网络计算机的系统行为,并得到所述系统行为对应的系统行为 数据; 步骤二,将得到的所述系统行为数据实时传输到远端主机进行分析处理。
所述的网络计算机系统行为远程调试方法,其中,所述步骤一中,进一步包括
通过修改所述网络计算机的内核的方式对所述系统行为进行监控的步骤。
所述的网络计算机系统行为远程调试方法,其中,所述步骤一中,进一步包括
通过启动、配置和关闭跟踪机制控制是否跟踪所述网络计算机的系统事件的步 骤。
所述的网络计算机系统行为远程调试方法,其中,所述步骤二中,进一步包括
通过所述网络计算机与所述远端主机之间的接口将所述系统行为数据传送到所 述远端主机的步骤。
所述的网络计算机系统行为远程调试方法,其中,所述步骤二中,进一步包括
以在所述系统行为数据的结尾附加字节的求和校验方式实现所述系统行为数据 的传输的步骤。
所述的网络计算机系统行为远程调试方法,其中,所述步骤二中,进一步包括
对系统行为数据进行收集以及对所述系统行为数据进行分析处理的步骤。
为了实现上述目的,本发明还提供了一种网络计算机系统行为远程调试装置,用 于对网络计算机的系统行为进行调试,其特征在于,该装置包括 跟踪模块,用于跟踪所述网络计算机的系统行为,并得到所述系统行为对应的系 统行为数据; 数据传送模块,连接所述跟踪模块,用于将所述跟踪模块得到的所述系统行为数 据实时传输到远端主机进行分析处理。
所述的网络计算机系统行为远程调试装置,其中,该装置还包括 守护进程模块,连接所述跟踪模块,用于通过启动、配置和关闭跟踪机制控制所述
跟踪模块的工作。
所述的网络计算机系统行为远程调试装置,其中,所述远端主机包括 数据接收模块,用于接收所述数据传送模块传送的所述系统行为数据; 数据收集模块,连接所述数据接收模块,用于从所述数据接收模块中收集所述系
统行为数据; 数据分析模块,连接所述数据收集模块,用于对数据收集模块收集的所述系统行 为数据进行分析处理。 所述的网络计算机系统行为远程调试装置,其中,所述数据传送模块通过所述网 络计算机与所述远端主机之间的接口将所述系统行为数据传送到所述数据接收模块。
5
所述的网络计算机系统行为远程调试装置,其中,所述数据传送模块以在所述系
统行为数据的结尾附加字节的求和校验方式实现所述系统行为数据的传输。 本发明的有益技术效果 传统的调试工具面向的是程序代码,判断代码执行正确与否的标准是寄存器或变 量的取值是否与预期一致。略微宏观一些的调试结果可能会反映一个函数的执行结果是否 正确,但是这样的调试机制粒度局限在代码片断,不足以反映系统整体的特性。
与现有技术相比,本发明系统调试方法能够给出系统运行的宏观数据,但本身并 不做出对系统运行正确性的判断。系统运行的统计数据不局限于某一子系统,往往跨越系 统的若干组成部分,这有利于对系统行为进行捕捉与描述。另一方面,传统的系统级调试一 般将调试结果存储在本地文件系统,若系统运行发生故障,将无法从失去响应的系统中获 取日志。本发明系统调试方法的远程特性,使得获取的信息存在远程文件系统,避免了系统 级调试中的不稳定因素对调试的影响。 以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。


图1是现有技术中主机/目标板开发环境示意图;
图2是本发明的网络计算机系统行为远程调试结构图;
图3是本发明的网络计算机系统行为远程调试流程图;
图4是本发明的踪迹采集事件表;
图5是本发明的远程传输接口示意图。
具体实施例方式
下面结合附图和具体实施方式
对本发明的技术方案作进一步更详细的描述。
如图2所示,是本发明的网络计算机系统行为远程调试结构图。该结构图针对网 络计算机系统级的调试需求,能够对系统行为进行远程调试。 网络计算机系统行为调试分为系统行为跟踪30和实时数据传输40两部分,并各 自在网络计算机10和远端主机20上有相应的模块。在网络计算机10的一端,跟踪模块 11、跟踪工具12和数据传送模块13都在内核(如Li皿x)中,而守护进程模块14只是用来 启动、配置和关闭跟踪机制。跟踪模块11和跟踪工具12能够把重要的系统事件记录下来, 这些系统事件构成了对系统的行为描述。数据传送模块13则实现实时数据传输40,以便及 时地将系统行为数据传送到远端主机20,然后再由远端主机20进行数据的收集和分析。
远端主机20包括数据接收模块23、数据收集模块22、数据分析模块21。数据接 收模块23接收网络计算机10的数据传送模块13传送的系统行为数据,并将该系统行为数 据送至数据收集模块22,数据收集模块22再将该系统行为数据送至数据分析模块21进行 分析处理。 网络计算机10的系统行为跟踪机制的实现需要对内核进行扩充和修改,而对软 件系统的搭建和其它应用程序没有任何影响。远程调试具体包括两部分
1)系统行为跟踪30 系统行为跟踪30通过修改内核的方法来实现对系统行为的监控,同时允许应用程序创建自己定义的事件,把应用程序希望记录的关键信息添加到事件日志中,这些自定 义事件与系统内核事件整合在一起,就能够完整地描述系统行为。 图4中定义了对中断、陷入、系统调用、进程切换与内存管理等多种类型事件的记 录。这些类型的事件中,核心是前7个事件,它们构成记录程序运行时间的主要标记,可以 根据这些事件,计算出一个进程在用户模式下运行的时间与在内核模式运行的时间,也可 以计算出内核花费了多少时间,用于处理中断和陷入。这些统计结果构成了系统运行时间 的分布,可以用来分析系统运行的瓶颈。
2)实时数据传输40 实时数据传输40主要受到两方面的影响, 一是实时数据传输机制不能影响系统 行为的跟踪,二是实时数据传输应尽可能少的影响系统的实际运行。 实时数据传输40的底层硬件可以有多个选择,如串口、网口、 ICE等,其中 ICE (Interactive Connectivity Establishment)是交互式连通建立方式。考虑到网络计 算机10本身需要使用网口 ,而利用ICE在很多实际情况下并不方便,因此可选择串口作为 传输接口。 具体实现中,数据传送模块13创建一个内核线程,该内核线程监控系统行为跟踪 机制的数据缓冲区,在合适的时候将系统行为数据传输出来。数据接收模块23负责接收传 送来的数据,提交给数据收集模块22。该过程的实现中需要考虑的问题有
Al、每次传输的字节数 串口传输数据能力有限,采用串口传输大量数据需要有比较完备的流控和校验机 制。为了不影响系统行为的跟踪,可以只采用原始传输模式,因此每次传输的数据量需要控 制在一定范围,否则极容易发生传输错误,本发明中可每次传输100字节。若每次传输的数 据量过小,虽然降低了出错的概率,但很容易使系统陷入自反馈状态。
A2、防止自反馈 由于传输数据操作过程中会产生新的数据传输需求,假定传输Dd字节数据过程 中会产生Dn字节的新数据,称Dn/Dd为反馈比,反馈比越小,传输的效率越高。为了降低反 馈比,每次传输的数据量不能太小,经过验证通过串口传输100字节所引发的新事件仅有 数个字节,基本能够满足需要。
A3、数据校验 串口传输数据需要校验机制,保证接收到的数据没有错误和丢失。由于串口按位 传输的特点,异或校验有较大缺陷,往往校验值会同样受到干扰而发生与数据类似的变异, 从而导致校验不能发现一些错误。因此,在每次传输的数据结尾附加一字节的求和校验,该 校验能够有效的检查按位传输数据时发生的错误。 系统运行得到的事件记录踪迹文件通过串口传送到远程主机20,然后在远程主机 20上完成数据分析。 如图3所示,是本发明的网络计算机系统行为远程调试流程图。结合图2,该流程 具体包括如下步骤 步骤S301,跟踪模块11通过跟踪工具12跟踪网络计算机10的系统行为,并得到 系统行为对应的系统行为数据; 步骤S302,数据传送模块13将得到的系统行为数据实时传输到远端主机20进行分析处理。
上述步骤S301 ,进一步包括 通过修改网络计算机10的内核的方式对系统行为进行监控。
上述步骤S301 ,进一步包括 由守护进程模块14通过启动、配置和关闭跟踪机制控制是否跟踪网络计算机10 的系统事件。 上述步骤S302 ,进一步包括 通过网络计算机10与远端主机20之间的接口 (如串行接口 )将系统行为数据传
送到远端主机20的步骤。 上述步骤S302 ,进一步包括 数据传送模块13以在系统行为数据的结尾附加字节的求和校验方式将系统行为 数据传输到远程主机20的数据接收模块23。
上述步骤S302 ,进一步包括 数据收集模块22接收数据接收模块23得到的系统数据,并且将该系统数据交给 数据分析模块21进行分析处理。 下面进一步通过具体的实施例对本发明的技术方案进行说明。 网络计算机远程系统调试方法易于在Li皿x系统中实现。首先为内核添加一个编
译选项CONFIG_TRACE,这个选项用来控制该调试方法是否被编译进内核。然后,按照事件类
型逐个添加踪迹采集部分,实现守护进程部分以及数据传送部分。另外,提供相应的数据分
析工具。 踪迹采集部分最核心的函数是trace—event(),该函数提供了一个灵活的记录接
口 ,绝大多数事件都通过该函数记录到踪迹采集部分。 int trace—event (uint8—tevent—id, void氺detail); 其中event」d是用来分辨事件类型的标志,其取值可以参见图4。 detail参数在
不同的事件中有不同的含义,会有不同的数据结构对应各自的事件类型。 从各种事件的收集过程来看,一些事件填充好对应的事件细节结构,直接调用
trace—event (),而一些事件由一个封装函数先进行收集,在其中进行一些预处理,尤其是
与系统状态相关的处理,然后才调用trace_event()采集。 系统调用是用户执行swi指令,主动进入内核的入口,在entry. S文件中,对其进 行了处理,在这里添加代码,调用封装函数trace—real—syscall—entry():当系统调用完 成后,再调用封装函数trace—real—syscall—exit();这两个函数获取系统调用发生的地 址,进出内核的时间,以及其他一些用户模式下的信息,调用trace_event()记录系统调用 进入和退出内核的事件。 中断是处理器接到外部中断请求,打断当前进程,进入内核模式的过程。在irq. c 文件中,对其进行了处理。LTT就在这里添加代码,调用封装函数TRACE_IRQ_ENTRY(irq, ! (user—mode (regs))),该函数记录中断号,以及发生中断时系统所处状态。若系统处于用户 模式,user—mode (regs)返回真,否则返回假。当中断处理完成后,再调用封装函数TRACE_ IRQ—EXIT(),这两个函数获取中断进出内核的时间,调用trace—event ()记录中断进入和 退出内核的事件。
陷入是系统发生数据或指令失效,进入内核的入口 ,在trap, c文件中,对其进行 了处理。LTT就在这里添加代码,调用封装函数TRACE_TRAP_ENTRY(current- > thread. trap_no, (uint32_t)pc),当系统调用完成后,再调用封装函数TRACE_TRAP_EXIT (),这两个 函数获取陷入的类型与发生的地址,调用trace_event()记录系统调用进入和退出内核的 事件。 进程切换采集接口记录进程切换事件,在sched. c文件中调用TRACE_
SCHEDCHANGE(prev, next),记录进程切换发生的事件、进出进程号等信息。 还可以根据调试需求记录其他事件,例如 TRACE_PR0CESS ();〃与进程相关的事件 TRACE_IPC();〃与进程间调用相关的事件 TRACE_S0CKET();〃与网络相关的事件 TRACE_MEM0RY();〃与内存管理相关的事件 TRACE_FILE_SYSTEM();〃与文件系统相关的事件 TRACE_TIMER();〃与时钟相关的事件 远程数据传输部分通过串口 (Serial) 51实现。串口 (Serial) 51可通过 UART (Universal Asynchronous Receiver Transmitter,通用异步收发器)52来实现。串口 设备在内核中的位置比较特殊,对串口 51的操作需要封装在对TTY设备(TTY Devices)53 的操作中,以字符设备(Character Devices) 54接口呈现给用户,如图5所示,描述了向串 口 51写数据的过程。在远程机器端收到数据后,开发者可以捕获相关调试信息,进行分析 调试。
本发明网络计算机系统远程调试方法具有以下特点 1)对网络计算机系统的软硬件的影响小; 2)可以跟踪较为完整的系统行为; 3)可以及时地把数据传输到另外一台主机上。 传统的调试工具面向的是程序代码,判断代码执行正确与否的标准是寄存器或变 量的取值是否与预期一致。略微宏观一些的调试结果可能会反映一个函数的执行结果是否 正确,但是这样的调试机制粒度局限在代码片断,不足以反映系统整体的特性。而本发明系 统调试方法能够给出系统运行的宏观数据,但本身并不做出对系统运行正确性的判断。系 统运行的统计数据不局限于某一子系统,往往跨越系统的若干组成部分,这有利于对系统 行为进行捕捉与描述。另一方面,传统的系统级调试一般将调试结果存储在本地文件系统, 若系统运行发生故障,将无法从失去响应的系统中获取日志。本发明系统调试方法的远程 特性,使得获取的信息存在远程文件系统,避免了系统级调试中的不稳定因素对调试的影 响。 当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟 悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变 形都应属于本发明所附的权利要求的保护范围。
权利要求
一种网络计算机系统行为远程调试方法,用于对网络计算机的系统行为进行调试,其特征在于,包括步骤一,跟踪所述网络计算机的系统行为,并得到所述系统行为对应的系统行为数据;步骤二,将得到的所述系统行为数据实时传输到远端主机进行分析处理。
2. 根据权利要求1所述的网络计算机系统行为远程调试方法,其特征在于,所述步骤 一中,进一步包括通过修改所述网络计算机的内核的方式对所述系统行为进行监控的步骤。
3. 根据权利要求1或2所述的网络计算机系统行为远程调试方法,其特征在于,所述步骤一中,进一步包括通过启动、配置和关闭跟踪机制控制是否跟踪所述网络计算机的系统事件的步骤。
4. 根据权利要求1或2所述的网络计算机系统行为远程调试方法,其特征在于,所述步骤二中,进一步包括通过所述网络计算机与所述远端主机之间的接口将所述系统行为数据传送到所述远 端主机的步骤。
5. 根据权利要求4所述的网络计算机系统行为远程调试方法,其特征在于,所述步骤二中,进一步包括以在所述系统行为数据的结尾附加字节的求和校验方式实现所述系统行为数据的传 输的步骤。
6. —种网络计算机系统行为远程调试装置,用于对网络计算机的系统行为进行调试,其特征在于,该装置包括跟踪模块,用于跟踪所述网络计算机的系统行为,并得到所述系统行为对应的系统行 为数据;数据传送模块,连接所述跟踪模块,用于将所述系统行为数据实时传输到远端主机进 行分析处理。
7. 根据权利要求6所述的网络计算机系统行为远程调试装置,其特征在于,该装置还包括守护进程模块,连接所述跟踪模块,用于通过启动、配置和关闭跟踪机制控制所述跟踪 模块的工作。
8. 根据权利要求6或7所述的网络计算机系统行为远程调试装置,其特征在于,所述远端主机包括数据接收模块,用于接收所述数据传送模块传送的所述系统行为数据; 数据收集模块,连接所述数据接收模块,用于从所述数据接收模块中收集所述系统行 为数据;数据分析模块,连接所述数据收集模块,用于对数据收集模块收集的所述系统行为数 据进行分析处理。
9. 根据权利要求6或7所述的网络计算机系统行为远程调试装置,其特征在于,所述数 据传送模块通过所述网络计算机与所述远端主机之间的接口将所述系统行为数据传送到 所述数据接收模块。
10.根据权利要求9所述的网络计算机系统行为远程调试装置,其特征在于,所述数据 传送模块以在所述系统行为数据的结尾附加字节的求和校验方式实现所述系统行为数据 的传输。
全文摘要
本发明公开了一种网络计算机系统行为远程调试方法及其装置,其中该装置包括跟踪模块,用于跟踪所述网络计算机的系统行为,并得到所述系统行为对应的系统行为数据;数据传送模块,连接所述跟踪模块,用于将所述跟踪模块得到的所述系统行为数据实时传输到远端主机进行分析处理。本发明在网络计算机本地资源有限制的情况下实现了远程对系统行为进行跟踪、调试。
文档编号G06F11/36GK101727388SQ20091016371
公开日2010年6月9日 申请日期2009年8月14日 优先权日2009年8月14日
发明者刘姝, 程旭, 管雪涛, 苏永刚 申请人:北京北大众志微系统科技有限责任公司;常州北大众志网络计算机有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1