CN109788352A - 一种基于mips架构的机顶盒异常确认方法和系统 - Google Patents
一种基于mips架构的机顶盒异常确认方法和系统 Download PDFInfo
- Publication number
- CN109788352A CN109788352A CN201811594802.4A CN201811594802A CN109788352A CN 109788352 A CN109788352 A CN 109788352A CN 201811594802 A CN201811594802 A CN 201811594802A CN 109788352 A CN109788352 A CN 109788352A
- Authority
- CN
- China
- Prior art keywords
- top box
- function
- mips framework
- map file
- exception
- 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.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于MIPS架构的机顶盒异常确认方法和系统,方法:确定机顶盒处于异常状态的异常时间;基于MIPS架构的栈结构和函数对于栈的利用机制,回溯以获取机顶盒执行的函数的运行地址;根据函数的运行地址和程序的map文件以确定函数的名称和调用关系。系统用于执行方法。通过确定机顶盒的异常时间以定义起点,基于MIPS架构的栈结构和函数对于栈的利用机制,回溯以获取函数的运行地址,根据运行地址和map文件以确定函数的名称和调用关系,能够显示在异常时间之前的机顶盒的程序涉及的函数信息,有利于技术人员分析是哪一个流程出现异常。
Description
技术领域
本发明涉及机顶盒技术领域,尤其是一种基于MIPS架构的机顶盒异常确认方法和系统。
背景技术
电视机顶盒作为家庭传统娱乐被广泛的应用到世界各地,现在更是成为每个家庭必不可少的家庭电器;机顶盒的程序出现崩溃,造成死机重启也是时有发生,且很多异常在实验室不能重现,现场测试也极其不易复现,给解决问题造成很大的困扰和负担,也会给客户造成不好的使用体验。如果不能及时有效解决,那么可能会对机顶盒的公司的形象和效益造成的影响;通常死机重启追踪技术人员会借助PC工具,例如wingdb等工具去调试,但是这些工作只能由技术人员在实验室去做;对于用户现场发生的很难使用这个方式去做处理。因此需要实现机顶盒本身自动去解析并提供结果以方便开发人员获取异常的信息以修改BUG。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的一个目的是提供一种基于MIPS架构的机顶盒异常确认方法和系统。
本发明所采用的技术方案是:
第一方面,本发明提供一种基于MIPS架构的机顶盒异常确认方法,包括步骤:S1、确定机顶盒处于异常状态的异常时间;S2、基于MIPS架构的栈结构和函数对于栈的利用机制,回溯以获取机顶盒执行的函数的运行地址;S3、根据函数的运行地址和程序的map文件以确定函数的名称和调用关系。
优选地,所述运行地址和map文件存储于指定的闪存,具体的,基于LZMA压缩所述map文件并存储于指定的闪存。
优选地,还包括步骤S4:当机顶盒解除异常,输出异常信息,所述异常信息包括运行地址、map文件、函数的名称和调用关系。
优选地,所述输出异常信息具体包括:输出所述异常数据至所述机顶盒的人机交互界面。
优选地,所述输出异常信息具体包括:存储所述异常数据,当外部存储器连接机顶盒,则输出所述异常数据至所述外部存储器。
第二方面,本发明提供一种基于MIPS架构的机顶盒异常确认系统,包括:异常确认模块,用于确定机顶盒处于异常状态的异常时间;地址确认模块,用于基于MIPS架构的栈结构和函数对于栈的利用机制,回溯以获取机顶盒执行的函数的运行地址;解析模块,用于根据函数的运行地址和程序的map文件以确定函数的名称和调用关系。
优选地,所述运行地址和map文件存储于指定的闪存,具体的,基于LZMA压缩所述map文件并存储于指定的闪存。
优选地,还包括输出模块,其用于当机顶盒解除异常,输出异常信息,所述异常信息包括运行地址、map文件、函数的名称和调用关系。
优选地,所述输出异常信息具体包括:输出所述异常数据至所述机顶盒的人机交互界面。
优选地,所述输出异常信息具体包括:存储所述异常数据,当外部存储器连接机顶盒,则输出所述异常数据至所述外部存储器。
本发明的有益效果是:
本发明通过确定机顶盒的异常时间以定义起点,基于MIPS架构的栈结构和函数对于栈的利用机制,回溯以获取函数的运行地址,根据运行地址和map文件以确定函数的名称和调用关系,能够显示在异常时间之前的机顶盒的程序涉及的函数信息,有利于技术人员分析是哪一个流程出现异常。
附图说明
图1是本发明的一种基于MIPS架构的机顶盒异常确认方法的示意图;
图2是本发明的一种基于MIPS架构的机顶盒异常确认系统的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例1
本实施例提供如图1所示的一种基于MIPS架构的机顶盒异常确认方法:S1、确定机顶盒处于异常状态的异常时间;S2、基于MIPS架构的栈结构和函数对于栈的利用机制,回溯以获取机顶盒执行的函数的运行地址;S3、根据函数的运行地址和程序的map文件以确定函数的名称和调用关系。
MIPS架构(MIPS为Microprocessor without interlocked piped stagesarchitecture的缩写,是一种采取精简指令集(RISC)的处理器架构;在其中设置一个用于存储事件的cause寄存器,解析其存储的数据以获得事故发生后、重启前的系统(即机顶盒的运行系统,包括若干程序)运行的函数的信息(包括函数地址,引用关系和函数名称等),这部分的信息即异常的信息(在发生异常的情况下);相关的,栈用来传递函数参数,存储返回值信息,保存于cause寄存器以供恢复调用前处理的状态,而如何判断机顶盒异常是很简单的(某一些进程终止,或者某一些调用没有返回结果即足以判断程序出现异常,其他的在本领域常用的异常判断原理和方法在本实施例中不在详细列举),当机顶盒出现异常,则启动一个和机顶盒主要进程不直接相关的守护进程,该守护进程的目的可以包括记录当前异常发生的时间,重启机顶盒然后根据上述的回溯原理从cause寄存器获取对应的函数的栈地址和运行位置(当然也不是无限的从异常的时间往上进行回溯,可以规定一个时间来限定回溯的期间),根据程序的map文件(用于存储函数的连接记录、程序的函数名称等信息)获取函数调用记录和对应的函数名称等信息,这部分信息能够让技术人员进行分析具体异常出现在哪一步,有助于进行事故模拟,找出解决的方法。
具体的,运行地址和map文件存储于指定的闪存(可以是专门的存储器,也可以是某一段flash存储空间/区域),基于LZMA压缩所述map文件并存储于指定的闪存。其效果在于因为flash的存储特性,能够在断电的情况下保存数据,可以使机顶盒发生断电的异常时能保存异常信息(即异常数据),而LZMA(Lempel-Ziv-Markov chain-Algorithm的缩写,是一个Deflate和LZ77算法改良和优化后的压缩算法)能够在MIPS构架下很好的保存数据,而压缩的方式能够降低存储空间的要求,以容纳更多的异常数据。
具体的,重启开机(即解除异常)后用户可以到固定后台界面(即人机交互界面)去查看最终信息(即异常数据,具体实现方式可以是通过人机交互界面提供一个数据访问的链接),或者插入USB(即外部存储器),(在人机交互界面)输入特定指令密码,可以将异常信息以文件形式保存到USB。
本发明采取的解析的方法和主流的backtarce的方法类似,而本发明着重在于实现机顶盒的自动记录异常,其实现详细的原理包括:
基于MIPS栈结构与函数对栈的处理机制,得到RA(返回地址)、a0-a3(参数寄存器)、sp(堆栈指针)寄存器的内容和获取PC(在此处为当前函数的栈地址和当前运行位置),然后根据MIPS Stack Frame(MIPS栈结构)进行数据的解析,通过计算得到当前函数的返回地址和上层函数(caller)的栈地址,然后以当前函数的返回地址(RA)作为caller的PC(在此处为当前函数的栈地址和当前运行位置),来继续解析caller的返回地址和caller ofcaller的栈地址,以此类推进行纵向解析;得到死机前的所有程序运行程序地址,然后根据解析出的函数地址从map文件将地址转换为易读信息即解析出其所属的函数名称,供开发人员分析解决问题。
实施例2
本实施例提供如图2所示的一种基于MIPS架构的机顶盒异常确认系统,包括:异常确认模块1,用于确定机顶盒处于异常状态的异常时间;地址确认模块2,用于基于MIPS架构的栈结构和函数对于栈的利用机制,回溯以获取机顶盒执行的函数的运行地址;解析模块3,用于根据函数的运行地址和程序的map文件以确定函数的名称和调用关系。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (10)
1.一种基于MIPS架构的机顶盒异常确认方法,其特征在于,包括步骤:
S1、确定机顶盒处于异常状态的异常时间;
S2、基于MIPS架构的栈结构和函数对于栈的利用机制,回溯以获取机顶盒执行的函数的运行地址;
S3、根据函数的运行地址和程序的map文件以确定函数的名称和调用关系。
2.根据权利要求1所述的基于MIPS架构的机顶盒异常确认方法,其特征在于,所述运行地址和map文件存储于指定的闪存,具体的,基于LZMA压缩所述map文件并存储于指定的闪存。
3.根据权利要求1所述的基于MIPS架构的机顶盒异常确认方法,其特征在于,还包括步骤S4:当机顶盒解除异常,输出异常信息,所述异常信息包括运行地址、map文件、函数的名称和调用关系。
4.根据权利要求3所述的基于MIPS架构的机顶盒异常确认方法,其特征在于,所述输出异常信息具体包括:
输出所述异常数据至所述机顶盒的人机交互界面。
5.根据权利要求3所述的基于MIPS架构的机顶盒异常确认方法,其特征在于,所述输出异常信息具体包括:
存储所述异常数据,当外部存储器连接机顶盒,则输出所述异常数据至所述外部存储器。
6.一种基于MIPS架构的机顶盒异常确认系统,其特征在于,包括:
异常确认模块,用于确定机顶盒处于异常状态的异常时间;
地址确认模块,用于基于MIPS架构的栈结构和函数对于栈的利用机制,回溯以获取机顶盒执行的函数的运行地址;
解析模块,用于根据函数的运行地址和程序的map文件以确定函数的名称和调用关系。
7.根据权利要求6所述的基于MIPS架构的机顶盒异常确认系统,其特征在于,所述运行地址和map文件存储于指定的闪存,具体的,基于LZMA压缩所述map文件并存储于指定的闪存。
8.根据权利要求6所述的基于MIPS架构的机顶盒异常确认系统,其特征在于,还包括输出模块,其用于当机顶盒解除异常,输出异常信息,所述异常信息包括运行地址、map文件、函数的名称和调用关系。
9.根据权利要求8所述的基于MIPS架构的机顶盒异常确认系统,其特征在于,所述输出异常信息具体包括:
输出所述异常数据至所述机顶盒的人机交互界面。
10.根据权利要求8所述的基于MIPS架构的机顶盒异常确认系统,其特征在于,所述输出异常信息具体包括:
存储所述异常数据,当外部存储器连接机顶盒,则输出所述异常数据至所述外部存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811594802.4A CN109788352A (zh) | 2018-12-25 | 2018-12-25 | 一种基于mips架构的机顶盒异常确认方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811594802.4A CN109788352A (zh) | 2018-12-25 | 2018-12-25 | 一种基于mips架构的机顶盒异常确认方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109788352A true CN109788352A (zh) | 2019-05-21 |
Family
ID=66498161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811594802.4A Pending CN109788352A (zh) | 2018-12-25 | 2018-12-25 | 一种基于mips架构的机顶盒异常确认方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109788352A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110737488A (zh) * | 2019-09-24 | 2020-01-31 | 普联技术有限公司 | 基于MIPS平台打印嵌入式Linux应用程序backtrace的方法、装置及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101122881A (zh) * | 2007-09-20 | 2008-02-13 | 福建星网锐捷网络有限公司 | 一种基于mips架构cpu的异常点定位诊断方法 |
CN101261603A (zh) * | 2008-04-09 | 2008-09-10 | 中兴通讯股份有限公司 | 故障定位的方法和装置 |
CN101533370A (zh) * | 2009-04-09 | 2009-09-16 | 成都市华为赛门铁克科技有限公司 | 一种内存异常访问定位方法及装置 |
US20110035745A1 (en) * | 2008-03-17 | 2011-02-10 | Institute Of Computing Technology Of The Chinese Academy Of Sciences | Risc processor apparatus and method for supporting x86 virtual machine |
CN102789400A (zh) * | 2011-05-16 | 2012-11-21 | 深圳市普联技术有限公司 | 一种中断不响应的检测方法及系统 |
CN106201892A (zh) * | 2016-07-20 | 2016-12-07 | 中国航空工业集团公司航空动力控制系统研究所 | 用于嵌入式软件的异常中断源定位检测方法 |
-
2018
- 2018-12-25 CN CN201811594802.4A patent/CN109788352A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101122881A (zh) * | 2007-09-20 | 2008-02-13 | 福建星网锐捷网络有限公司 | 一种基于mips架构cpu的异常点定位诊断方法 |
US20110035745A1 (en) * | 2008-03-17 | 2011-02-10 | Institute Of Computing Technology Of The Chinese Academy Of Sciences | Risc processor apparatus and method for supporting x86 virtual machine |
CN101261603A (zh) * | 2008-04-09 | 2008-09-10 | 中兴通讯股份有限公司 | 故障定位的方法和装置 |
CN101533370A (zh) * | 2009-04-09 | 2009-09-16 | 成都市华为赛门铁克科技有限公司 | 一种内存异常访问定位方法及装置 |
CN102789400A (zh) * | 2011-05-16 | 2012-11-21 | 深圳市普联技术有限公司 | 一种中断不响应的检测方法及系统 |
CN106201892A (zh) * | 2016-07-20 | 2016-12-07 | 中国航空工业集团公司航空动力控制系统研究所 | 用于嵌入式软件的异常中断源定位检测方法 |
Non-Patent Citations (2)
Title |
---|
XUANJIAN_X: "MIPS体系堆栈回溯分析与实现", 《CSDN》 * |
夏冬盛: "MIPS系统异常现场分析工具的设计与实现", 《电子设计工程》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110737488A (zh) * | 2019-09-24 | 2020-01-31 | 普联技术有限公司 | 基于MIPS平台打印嵌入式Linux应用程序backtrace的方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10621068B2 (en) | Software code debugger for quick detection of error root causes | |
Chen et al. | Using Crash Hoare logic for certifying the FSCQ file system | |
EP2368189B1 (en) | Debugging pipeline | |
US6986125B2 (en) | Method and apparatus for testing and evaluating a software component using an abstraction matrix | |
Sigelman et al. | Dapper, a large-scale distributed systems tracing infrastructure | |
Zage et al. | Evaluating design metrics on large-scale software | |
US20030028856A1 (en) | Method and apparatus for testing a software component using an abstraction matrix | |
US20080163003A1 (en) | Method and System for Autonomic Target Testing | |
Offutt et al. | Modeling presentation layers of web applications for testing | |
Haugen et al. | STAIRS–steps to analyze interactions with refinement semantics | |
Guo et al. | G2: A graph processing system for diagnosing distributed systems | |
CN105843590B (zh) | 一种运行于cuda平台的并行指令集预译码方法及系统 | |
CN114880159B (zh) | 数据处理方法、装置、设备及存储介质 | |
Marra et al. | A debugging approach for live Big Data applications | |
CN106445787B (zh) | 一种监控服务器核心转储文件的方法、装置及电子设备 | |
CN109788352A (zh) | 一种基于mips架构的机顶盒异常确认方法和系统 | |
CN113485911A (zh) | 一种基于银行业务的测试数据生成平台 | |
CN113127445A (zh) | 一种涉外技术应用系统的国产化替代迁移方法 | |
US8671396B2 (en) | Dynamic interface reduction for software model checking | |
Machado et al. | Lightweight cooperative logging for fault replication in concurrent programs | |
CN111176980A (zh) | 调试环境和运行环境分离的数据分析方法、装置及系统 | |
JP6516343B2 (ja) | アプリケーションユーザーインターフェース自動テスト方法、電子装置、システム及び記憶媒体 | |
CN112527497B (zh) | 一种序列化多线程数据处理系统 | |
CN114510429A (zh) | 一种基于动态符号执行的调试方法、系统和介质 | |
Marra et al. | Practical online debugging of spark-like applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190521 |