发明名称 嵌入式系统的错误追踪方法和装置
摘要 本发明公开了一种嵌入式系统的错误追踪方法和装置在系统发生异常时,保存处理器运行环境,根据帧指针找到当前运行的函数的栈帧;反复进行下列步骤,直到回溯出系统发生异常时运行的整个函数调用关系链:从找到的栈帧中获取该栈帧所属函数开始执行时保存的寄存器信息,和函数参数信息,及该函数代码的起始地址,以及进一步地获得函数的名称,并且得到调用该函数的函数的栈帧底;通过所述栈帧底找到该调用该函数的函数的栈帧。本发明的技术方案能在系统发生异常时,能快速定位与错误有关的指令和函数,无论软件系统是否有操作系统支持都可以适用,而且当存在多条函数调用分支时,可以快速查找出当前运行出错的函数的调用路径,提高追踪效率。
申请公布号 CN101539883B 申请公布日期 2011.11.16
申请号 CN200910083194.5 申请日期 2009.05.05
申请人 北京和利时系统工程有限公司 发明人 刘小树;傅一帆;张冰波;刘跃;刘谦;王衍
分类号 G06F11/36(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 北京安信方达知识产权代理有限公司 11262 代理人 龙洪;霍育栋
主权项 一种嵌入式系统的错误追踪方法,包括:A、在系统发生异常时,处理器根据不同的异常类型,跳转到相应的异常处理流程,保存导致发生异常的处理器运行环境,包括程序计数器、栈指针、帧指针和通用寄存器的内容;B、当发生数据访问中止异常时,获取失效访问存储器的状态和类型,和引起存储访问失效的存储访问的地址;发生其它异常时则获取指令出错的地址;C、从发生异常时帧指针所指的内存位置找到当前运行函数的栈帧;D、从所找到的栈帧中获取该栈帧所属函数开始执行时保存的寄存器信息,取出该函数执行函数体代码之前保存的函数参数信息,及该函数代码的起始地址;从该函数的代码区中取得该函数的名称;E、判断是否存在调用该函数的函数,如果存在,则从所找到的栈帧中得到该函数的返回地址,和调用该函数的函数的栈帧的栈帧底,找到调用该函数的函数的栈帧,返回步骤D;否则结束。
地址 100096 北京市海淀区西三旗建材城中路10号