CN100478915C - 一种基于mips架构cpu的异常点定位诊断方法 - Google Patents
一种基于mips架构cpu的异常点定位诊断方法 Download PDFInfo
- Publication number
- CN100478915C CN100478915C CNB2007101220259A CN200710122025A CN100478915C CN 100478915 C CN100478915 C CN 100478915C CN B2007101220259 A CNB2007101220259 A CN B2007101220259A CN 200710122025 A CN200710122025 A CN 200710122025A CN 100478915 C CN100478915 C CN 100478915C
- Authority
- CN
- China
- Prior art keywords
- function
- instruction
- return address
- stack
- constructor
- 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.)
- Expired - Fee Related
Links
Images
Abstract
本发明提供一种基于MIPS架构CPU的异常点定位诊断方法,该方法包括下列步骤:扫描当前函数的机器码;解析构建函数栈指令中的偏移,计算出调用函数的函数栈指针;解析返回地址存放指令中的偏移,计算出返回地址在当前函数的函数栈中的存放位置,得到返回地址;根据所述函数栈指针和所述返回地址递归回溯到所述当前函数的调用关系;根据所述调用关系对当前函数的故障进行诊断。根据本发明的方法得到的调用函数的函数栈指针和返回地址,便可以将当前函数的调用关系输出出来,以便进行故障定位和故障诊断。
Description
技术领域
本发明涉及数据通信领域,尤其涉及一种基于MIPS(Million InstructionsPer Second,每秒处理的百万级的机器语言指令数)CPU架构的数据通信产品在运行过程中因硬件或软件原因发生异常时的异常点定位诊断方法。
背景技术
随着数据通信技术的飞速发展,各类数据通信产品不断更新换代,如交换机、路由器等都是非常复杂的系统,包罗纷繁复杂的硬件器件,同时运行着数以百万条机器指令。如此一来,在系统运行过程中,一旦出现硬件或软件故障,故障异常点的定位和诊断就显得格外重要。一般情况下,系统运行过程中常会产生如下几个问题:
1、在产品系统软件开发过程中,由于软件缺陷导致系统死机(抛异常)。
遇到这类故障,在异常处理程序里边,可以获取直接导致异常的指令EPC,根据这一EPC指令可以知道发生异常的函数。但是更多的时候仅仅知道引起异常的函数还不够精确定位,因为该函数可能被很多个函数调用,这个时候就用到函数回溯(tracing),也就是从当前函数找到其调用函数。如果一个函数只被一个函数调用,那么直接从代码逻辑上就可以找到其调用函数;但是如果一个函数被多个函数调用,要找到其调用函数就不那么容易了,而在不同的情况下调用效果是不一样的。
如图1所示,图中的字母表示函数,箭头表示函数调用关系,函数p可能从不同的路径上被不同的函数调用,其效果很不一样,如图所示的例子,存在如下几种调用关系:a→f→m→p;b→g→m→p;b→g→n→p;c→g→m→p;c→g→n→p;c→h→n→p;d→h→n→p;d→i→n→p;e→i→n→p。假设某时刻函数p执行过程中出现了严重错误,即系统在执行某条指令PC时产生了异常,根据PC地址仅知道异常发生在p函数中,但是到底是上述哪条路径调用导致了异常则需要进一步的定位,如果能从函数p回溯出其调用函数将给故障诊断和定位带来极大的帮助。
X86体系架构的CPU和基于PowerPC架构的CPU很容易实现这一点,以基于PowerPC架构的CPU为例,因为PowerPC ABI(Application BinaryInterface,应用二进制接口)规定了其函数栈结构,如图2所示,Power PC的每个函数栈都有一个统一的函数栈头Frame Header(如图2所示的斜线部分)位于其函数栈的底部(low address)处,用于存放返回地址和其父函数(即调用函数)的函数栈指针sp(stack pointer)。随着函数的层层调用,函数栈之间如同串成了一条链表,如图2中的箭头所示,所以回溯起来就如遍历链表一样。根据当前的函数栈指针sp,便有如下规律:
返回地址=*((int*)sp+1)
父函数栈指针=*((int*)sp)
根据这个公式递归向上回溯,便可以将整个函数调用关系输出出来。
然而,基于MIPS架构(如交换机、路由器等)的CPU就无法实现这一点,这是由于MIPS ABI并没有定义如同PowerPC架构的函数栈头(FrameHeader),而是仅仅提供了一个松散的函数栈结构,根据这种函数栈结构无法精确定位。如图3所示,基于MIPS架构的CPU函数栈仅仅定义了三个区,即局部变量区、寄存器区和参数传递区,每个寄存器在寄存器区的具体什么位置存放是在编译时随机确定的,其函数栈里并没有像PowerPC那样固定的Frame Header,无法从当前函数栈上获取返回地址和父函数的栈指针,如此就使得函数回溯几乎无法实现。相反像X86体系架构的CPU和IBM的PowerPC体系架构的CPU都在ABI规范上提供了支持,他们严格规定了各寄存器、返回地址等在其函数栈中的存放位置,使得在这些架构的CPU上可以很简单的实现函数回溯。
如此一来,当基于MIPS架构的CPU执行过程中出现一些故障时,就无法根据出错函数追溯到其调用函数,从而给故障诊断和定位带来不便。
2、硬件故障定位。
基于MIPS CPU架构的数据通信产品中包罗了上万颗硬件芯片,如果某个硬件芯片出现故障,那么一条机器指令去访问该硬件的时候,往往就会抛出bus error的异常。硬件的故障,不一定就是电路设计上的问题,可能是某些信号的临界导致的,如果是这种问题导致系统死机,那么硬件开发人员是很难通过走读硬件电路设计图来完成故障定位的,这时候一般需要通过软件人员调试信息的定位跟踪,与上个例子存在一样问题的是MIPS松散的函数栈结构无法帮助精确定位,只能通过初步的定位进行猜测、一定程度的盲调。
3、设备在用户使用过程中的故障定位。
设备卖给客户之后不可避免地还是会出现故障,一些严重的死机问题往往会抛出异常信息,这些异常信息指示出了系统运行过程中哪些指令导致了当前异常,如果还能在这些异常信息中指标出,导致故障的指令的函数栈调用情况,则为设备厂商定位故障节约了宝贵的时间,更重要的是,可以使客户的网络尽快恢复使用。但是MIPS架构的CPU由于其松散的函数栈结构无法做到这一点,在出现故障时只能指出异常指令,无法打印出函数调用情况。
发明内容
本发明要解决的技术问题是,根据系统发生异常时的指令PC,定位出发生异常时的整个函数调用路径,实现系统软件或硬件故障的诊断。
本发明的主要目的在于提供一种基于MIPS架构CPU的异常点定位诊断方法,该方法基于MIPS ABI定义的函数栈,从中获取当前函数的返回地址和父函数的函数栈指针,实现MIPS架构CPU上的函数回溯(tracing),以解决上述现有技术中所指出的问题。
根据本发明的一较佳实施方式,提供一种基于MIPS架构CPU的异常点定位诊断方法,该方法包括下列步骤:扫描当前函数的机器码;解析构建函数栈指令中的偏移,计算出调用函数的函数栈指针;解析返回地址存放指令中的偏移,计算出返回地址在当前函数的函数栈中的存放位置,得到返回地址;根据所述函数栈指针和所述返回地址递归回溯到所述当前函数的调用关系;根据所述调用关系对当前函数的故障进行诊断。
通过本发明实施方式的方法,可以实现准确的函数回溯效果,准确定位故障,方便故障诊断。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1为现有技术中的函数调用关系图;
图2为现有技术中的PowerPC函数栈结构图;
图3为现有技术中的MIPS函数栈结构图;
图4为构建函数栈的示意图;
图5为保存返回地址的示意图;
图6为本发明的函数回溯方法的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合附图,对本发明实施方式做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
本发明提供一种基于MIPS架构CPU的异常点定位诊断方法,通过MIPS架构CPU上的函数回溯,定位诊断异常点。本发明的方法是通过如下步骤来实现的:
首先,构建函数栈,由于子函数的函数栈紧贴于父函数的函数栈的底部,而且子函数栈的构造一般均在子函数入口处完成,所以这个步骤是将父函数的栈指针减一个偏移,构建出子函数的函数栈,即sp子函数=sp父函数-offset,如图4所示,对应到MIPS的机器指令上,可以通过构建函数栈指令“addiusp,sp,-offset”实现,其中的offset是一个立即数。
然后,保存返回地址,子函数将其返回地址保存到其函数栈的一预定位置,以便函数返回,如图5所示。例如,对应MIPS32架构,可以使用返回地址存放指令“sw ra,imi(sp)”实现,该指令即表示将返回地址存放到当前函数的偏移imi处,其中,“ra”表示寄存器ra存放返回地址,“sp”表示寄存器sp存放函数栈指针,“imi”为立即数。又例如,对应MIPS64架构,可以使用返回地址存放指令“sd ra,imi(sp)”实现,该指令同样表示将返回地址存放到当前函数的偏移imi处,其他含义相同。
上述两个步骤是根据函数调用原理必定存在的两个动作,对所有架构的CPU均适用,且不依赖于任何ABI规范。因为当前函数的函数栈指针sp通过读寄存器就可以获得,因此,本发明的方法就是在上述两个步骤的基础上,通过扫描当前函数(子函数)的机器码,解析构建函数栈指令中的偏移offset,计算出父函数的函数栈指针;以及解析返回地址存放指令中的偏移imi,计算出返回地址在栈中的存放位置,从而得到当前函数的返回地址。以此类推,将该当前函数的函数调用关系输出出来。也就是说,如果是这个当前函数出现了故障,通过本发明的方法得出的函数调用关系,回溯出该当前函数的调用函数,即可准确定位故障,方便故障诊断。
例如,假设函数A调用函数B,则函数A为父函数(调用函数),函数B为子函数(当前函数),那么,扫描当前函数B的机器码,解析构建函数栈指令“addiu sp,sp,-offset”中的偏移offset,计算出父函数A的函数栈指针spA=spB+offset;另外,还要解析返回地址存放指令“sd ra,imi(sp)”中的偏移imi,计算出返回地址在函数栈中的存放位置,得到返回地址=*(unsigned*)(spB+imi)。
下面以block_commit_write函数为例介绍本发明的函数回溯方法,本实施方式就是要通过本发明的方法找到函数block_commit_write的调用关系。
假设函数bloc_kcommit_write的部分汇编指令如下:
0022da30<block_commit_write>:
22da30:27bdfff8 addiu sp,sp,-8
22da34:afbf0000 sw ra,0(sp)
22da38:00801821 move v1,a0
22da3c:8c820008 lw v0,8(a0)
22da40:00a04021 move t0,a1
22da44:00c03821 move a3,a2
22da48:8c440020 lw a0,3 2(v0)
22da4c:00602821 move a1,v1
22da50:0c08b526 jal 22d498<_block_commit_write>
22da54:01003021 move a2,t0
22da58:00001021 move v0,zero
22da5c:8fbf0000 lw ra,0(sp)
22da60:03e00008 jr ra
22da64:27bd0008 addiu sp,sp,8
其中,第一列表示的是指令存放的地址;第二列表示的是CPU可以识别的二进制指令,也即机器码,每条指令占用4个字节;第三列表示的是与第二列的机器码一一对应的汇编指令,该汇编指令就是人们所能看懂的指令。
假设系统在执行block_commit_write函数中的指令8c440020时出现故障,该指令对应的反汇编代码是“lw a0,32(v0)”,对应的PC等于0x22da48(图中下划线位置),block_commit_write函数栈指针sp可以直接从寄存器中读取。根据本发明的方法,要找到该函数block_commit_write的调用关系,需要做的就是从异常指令PC(即0x22da48)开始向上扫描机器码,找出构建函数栈的指令和存放返回地址的指令,扫描的终结点是该函数入口,也就是该函数的第一条指令的地址,函数的入口地址可以从符号表中取得,对于本实施方式的block_commit_write函数来说,如上述的汇编指令所示,函数的入口地址为0x22da30,该实施方式是从PC=0x22da48处的机器指令开始扫描。
下面结合图6所示的机器码扫描流程图对上述实施方式进行详细说明,如图6所示,首先读取上述地址的机器码指令;然后判断该指令是否为返回地址存放指令,如“sw ra,imi(sp)”,如果是,则开始解析该返回地址存放指令,如果不是,则继续判断该指令是否为构建函数栈指令,如“addiusp,sp,-offset”。在本例中,PC=0x22da48对应的指令“lw a0,32(v0)”显然既不是返回地址存放指令,也不是构建函数栈指令,则继续扫描下一条指令,即PC-4对应的指令,即PC=0x22da44,重复上述步骤,直到PC地址小于该函数的入口地址0x22da30。当扫描到PC=0x22da34时,找到返回地址存放指令“sw ra,0(sp)”,解析出立即数imi=0,则从内存位置sp+imi处取得返回地址ret_addr=*(unsigned*)(sp+imi)=*(unsigned*)(sp+0);另外,当扫描到PC=0x22da30时,找到构建函数栈指令“addiu sp,sp,-8”,解析出立即数offset=8,得到父函数的函数栈指针=子函数栈指针+8,也即父函数栈指针father sp=sp+offset=sp+8。
因为ret_addr实际上就是父函数的一条指令的地址,而现在也知道了父函数的栈指针father_sp,所以根据本发明的方法,如图6所示的流程图就可以回溯出父函数的父函数,如此递归下去,整个的函数调用关系就可以回溯出来了。
如果是该函数block_commit_write执行过程中出现了严重错误,就可以根据该函数回溯其调用函数,找到故障所在,进行故障诊断。
以上所述是根据本发明的一个实施方式,而本发明的保护范围不限于此,例如判断当前扫描的机器码的指令是否为返回地址存放指令与判断当前扫描的机器码的指令是否为构建函数栈指令的步骤可以互换,不限定其先后顺序。
如下所示的函数调用关系,就是根据本发明的方法,在某时刻从函数sys_touch_watchdog中回溯出来的整个函数栈,根据这个函数栈显示的函数调用关系,可以很准确地定位故障,为故障诊断提供依据。
MIPS Stack Trace:
sys_touch_watchdog→CE1_tx_start→CE1_intf_output→send_keepalive_p
acket→outp_packet_process→netif_send→ip_output→iplocal_send→raw_
sendmsg→sock_sendmsg→sys_sendmsg→sendmsg→ospf_packet_send→o
spf_packet_write→ospf_hello_send→ospf_hello_timer→ospf_start→ospf_t
hread→TCC_Task_Shell→<end>
根据本发明的方法得到的调用函数的函数栈指针和返回地址,便可以将当前函数的调用关系输出出来,以便进行故障定位和故障诊断。
本发明的基于MIPS架构CPU的异常点定位诊断方法极大提高了开发效率和诊断能力,下面分别从对软件故障和硬件故障的定位各举一例进行说明。
实施例一:软件故障定位
该实施例是以发生在RSR50路由器上的一个软件故障为例,其现象是RSR50路由器在烤机情况下偶尔抛出一个TLB异常TLB Invalid,也就是空指针异常,根据本发明的方法,可以回溯出发生TLB异常时的整个函数调用路径,如下所示:
Exception:TLB invalid
EPC:0x3EB71C
Tracing:
_free_pages
←_alloc_free_pages
←kernel_mem_alloc
←alloc_skb
←pq2_fcc_sync_rx_isr
←cpm_sync_recv_data
←pq2_cpm_sync_isr
←irq_do_action_cpu
←Interrupt_Process_Loop_0
从上述可以看到函数的调用路径和异常信息。分析可知是在中断中进行内存的动态申请,并最终在_free_pages函数中执行0x3EB71C处的指令时抛出了该异常。按照上面的回溯信息,检查_free_pages函数存在如下一段代码:
if((current->flags&PF_MEMALLOC)&&!in_interrupt())
{
zone=zonelist->zones;
for(;;){
zone_t*z=*(zone++);
page=rmqueue(z,order);
if(page)
return page;
}
其中,Current表示当前线程,但是由于是在中断上下文,所以current就是NULL,可是个空指针,故代码中current→flags就是操作了空指针导致了TLB Invalid异常,故障得到了定位和诊断,再经过修订后,系统即可正常工作。
因为current在线程上下文中是不为NULL的,所以函数_free_pages在线程上下文中调用是不会有问题的,由此可见如果没有异常的精确定位,该问题是很难找到原因的。
实施例二:硬件故障定位
该实施例是以发生在RSR50路由器上的一个硬件故障为例,其现象是机器正常跑起后系统隔一段时间就抛出一个bus error的异常。根据本发明的方法回溯出整个调用路径如下:
Exception:Bus Error
EPC:0x7cD030
Tracing:
sys_touch_watchdog
←CE1_tx_start
←CE1_intf_output
←send_keepalive_packet
←outp_packet_process
←netif_send
←ip_output
←iplocal_send
←raw_sendmsg
←sock_sendmsg
←sys_sendmsg
←sendmsg
←ospf_packet_send
←ospf_packet_write
←ospf_hello send
←ospf_hello_timer
←ospf_start
←ospf_thread
←TCC_Task_Shell
从上面的回溯信息可以看到,系统是在sys_touch_watchdog函数中的指令0x7cD030抛了bus error异常,经过检查sys_touch_watchdog函数,并没有发现软件上存在什么漏洞,但是经过反复的试验发现每次都会在sys_touch_watchdog抛异常,所以初步判断是硬件问题,经过硬件信号的检查是硬件CPLD存在问题,导致每次执行软件喂狗操作的时候实际上操作了一个没有硬件影射的地址空间,而出现了问题。
综上所述,通过本发明的基于MIPS架构CPU的异常点定位诊断方法,避开了MIPS的ABI缺陷,通过扫描机器码的方式,实现了函数回溯和故障的精确定位。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1、一种基于MIPS架构CPU的异常点定位诊断方法,其特征在于,该方法包括下列步骤:
扫描当前函数的机器码;
解析构建函数栈指令中的偏移,计算出调用函数的函数栈指针;
解析返回地址存放指令中的偏移,计算出返回地址在当前函数的函数栈中的存放位置,得到返回地址;
根据所述函数栈指针和所述返回地址递归回溯到所述当前函数的调用关系;
根据所述调用关系对当前函数的故障进行诊断。
2、根据权利要求1所述的方法,其特征在于,该方法还包括下列步骤:
判断所述机器码对应的指令是否为返回地址存放指令或构建函数栈指令,如果不是,则扫描当前函数的下一条机器码,直到该当前函数的入口。
3、根据权利要求2所述的方法,其特征在于,如果为返回地址存放指令,则解析返回地址存放指令中的偏移,计算出返回地址在当前函数的函数栈中的存放位置,得到返回地址,并扫描下一条机器码以寻找构建函数栈指令。
4、根据权利要求2所述的方法,其特征在于,如果为构建函数栈指令,则解析构建函数栈指令中的偏移,计算出调用函数的函数栈指针,并扫描下一条机器码以寻找返回地址存放指令。
5、根据权利要求2所述的方法,其特征在于,所述下一条机器码的指令地址为所述机器码的指令地址减4。
6、根据权利要求1所述的方法,其特征在于,所述构建函数栈指令为“addiu sp,sp,-offset”,则构建函数栈指令中的偏移为offset;所述返回地址存放指令为“sw ra,imi(sp)”或“sd ra,imi(sp)”,则返回地址存放指令中的偏移为imi。
7、根据权利要求6所述的方法,其特征在于,所述调用函数的函数栈指针=当前函数的函数栈指针sp+offset。
8、根据权利要求6所述的方法,其特征在于,所述返回地址=*(unsigned*)(当前函数的函数栈指针sp+imi)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101220259A CN100478915C (zh) | 2007-09-20 | 2007-09-20 | 一种基于mips架构cpu的异常点定位诊断方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101220259A CN100478915C (zh) | 2007-09-20 | 2007-09-20 | 一种基于mips架构cpu的异常点定位诊断方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101122881A CN101122881A (zh) | 2008-02-13 |
CN100478915C true CN100478915C (zh) | 2009-04-15 |
Family
ID=39085221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101220259A Expired - Fee Related CN100478915C (zh) | 2007-09-20 | 2007-09-20 | 一种基于mips架构cpu的异常点定位诊断方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100478915C (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012103359A2 (en) | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Hardware acceleration components for translating guest instructions to native instructions |
CN102789400B (zh) * | 2011-05-16 | 2015-12-02 | 普联技术有限公司 | 一种中断不响应的检测方法及系统 |
CN103631573B (zh) * | 2012-08-24 | 2017-12-08 | 中兴通讯股份有限公司 | 可迁移函数执行时间的获得方法及系统 |
CN103019787B (zh) * | 2012-12-14 | 2016-08-10 | 华为技术有限公司 | 函数调用关系确定方法、热补丁升级方法及装置 |
WO2014151691A1 (en) * | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | Method and apparatus for guest return address stack emulation supporting speculation |
WO2014151652A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines Inc | Method and apparatus to allow early dependency resolution and data forwarding in a microprocessor |
CN104035765B (zh) * | 2014-05-22 | 2017-03-15 | 烽火通信科技股份有限公司 | 一种嵌入式系统上下文的分析方法 |
CN105868094A (zh) * | 2015-01-20 | 2016-08-17 | 中兴通讯股份有限公司 | 一种用于mips架构cpu的热补丁的方法和设备 |
CN105824785A (zh) * | 2016-03-11 | 2016-08-03 | 中国石油大学(华东) | 基于惩罚回归的快速异常点检测方法 |
CN105975356A (zh) * | 2016-04-28 | 2016-09-28 | 乐视控股(北京)有限公司 | 内存错误检测方法、内存管理系统和装置、以及服务器 |
CN108984328B (zh) * | 2017-05-31 | 2021-08-17 | 中兴通讯股份有限公司 | 一种堆栈回溯的方法及装置 |
CN109426504B (zh) * | 2017-08-29 | 2021-11-19 | 龙芯中科技术股份有限公司 | 程序的处理方法、装置、电子设备及存储介质 |
CN109214149B (zh) * | 2018-09-11 | 2020-04-21 | 中国人民解放军战略支援部队信息工程大学 | 一种mips固件基地址自动化检测方法 |
CN111258630B (zh) * | 2018-12-03 | 2023-05-30 | 斑马智行网络(香港)有限公司 | 函数调用关系检测方法、装置、设备及存储介质 |
CN109788352A (zh) * | 2018-12-25 | 2019-05-21 | 深圳市纽格力科技有限公司 | 一种基于mips架构的机顶盒异常确认方法和系统 |
CN110007984B (zh) * | 2019-04-02 | 2022-07-15 | 思必驰科技股份有限公司 | 基于Xtensa DSP的函数调用关系回溯方法及系统 |
CN110737488A (zh) * | 2019-09-24 | 2020-01-31 | 普联技术有限公司 | 基于MIPS平台打印嵌入式Linux应用程序backtrace的方法、装置及设备 |
CN116149732B (zh) * | 2023-02-15 | 2023-10-27 | 深圳大学 | 一种数据流任务的硬件自动化执行方法、系统及产品 |
-
2007
- 2007-09-20 CN CNB2007101220259A patent/CN100478915C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101122881A (zh) | 2008-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100478915C (zh) | 一种基于mips架构cpu的异常点定位诊断方法 | |
US6012148A (en) | Programmable error detect/mask utilizing bus history stack | |
US4996688A (en) | Fault capture/fault injection system | |
CN1201229C (zh) | 用动态可重新配置的测试电路来跟踪硬件状态的方法和装置 | |
CN100541442C (zh) | 高性能串行总线测试方法 | |
JP5278310B2 (ja) | 診断システム | |
CN100449477C (zh) | 用于嵌入式系统的实时调试器接口 | |
CN100458692C (zh) | 开机自我测试除错系统及方法 | |
DK151652B (da) | Digitalt 2-kanal databearbejdningsanlaeg, navnlig til jernbanesikringsformaal | |
US10671465B2 (en) | Serializing machine check exceptions for predictive failure analysis | |
CN103440196B (zh) | 一种操作系统资源问题检测方法 | |
CN101482843A (zh) | 用于总线验证的片上电路 | |
CN100375960C (zh) | 用于调试输入/输出故障的方法和系统 | |
CN101008916A (zh) | 处理误差信息和在处理器系统中注入误差的方法和装置 | |
CN106354575A (zh) | 一种基于堆栈追溯的故障排查装置和方法 | |
CN107111595A (zh) | 双用途引导寄存器 | |
CN100568247C (zh) | 一种满足systemC语法的多核处理器的事件处理单元组 | |
JP2007102506A (ja) | 故障診断システム、画像形成装置及び故障診断方法 | |
CN102664755A (zh) | 控制通道故障确定方法及其装置 | |
US5553269A (en) | Apparatus for monitoring sensor information from diffeerent types of sources | |
CN101950280A (zh) | 产生多个串行总线芯片选择的方法 | |
CN1329839C (zh) | 一种计算机cpu抗干扰的设计方法 | |
CN103838890B (zh) | 具有黑盒ip多电源域系统版图和原理图一致性的比较方法 | |
US20100107012A1 (en) | Hierarchical debug information collection | |
CA1214283A (en) | Symbolic language data processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090415 Termination date: 20150920 |
|
EXPY | Termination of patent right or utility model |