CN101071396A - 一种设置系统复位原因监控信息的方法以及监控方法 - Google Patents
一种设置系统复位原因监控信息的方法以及监控方法 Download PDFInfo
- Publication number
- CN101071396A CN101071396A CN 200710075183 CN200710075183A CN101071396A CN 101071396 A CN101071396 A CN 101071396A CN 200710075183 CN200710075183 CN 200710075183 CN 200710075183 A CN200710075183 A CN 200710075183A CN 101071396 A CN101071396 A CN 101071396A
- Authority
- CN
- China
- Prior art keywords
- magic number
- system reset
- memory field
- word
- hook function
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种设置系统复位原因监控信息的方法和监控系统复位原因的方法,后者包括步骤:系统初始化时保留第一内存区存储监控信息;系统启动后,把监控信息复制到第二内存区;对第一内存区进行清零,并把第一内存区的头两个WORD位置分别设置成第一魔术字和第二魔术字;设置第一钩子函数,当命令行操作复位设备,将第一内存区的第三个WORD位置设置为第三魔术字;设置第二钩子函数,当软件操作复位设备,将第一内存区的第四个WORD位置设置为第四魔术字;分析系统在复位前所存储的监控信息,得到系统复位的原因,监控信息存储在第二内存区中。从而可以为事后定位系统故障提供有效的记录信息,便于定位系统问题,提高产品的稳定性。
Description
技术领域
本发明涉及数据通信领域,尤其涉及的是,一种数据通信产品在应用中设置系统复位原因监控信息的方法以及监控方法。
背景技术
在数据通信领域中,产品在市场应用时会遇到系统由于某种原因复位重启了,数据通信产品复位的原因通常有如下几种:断电复位、通过命令复位、软件发现设备异常自动复位、硬件狗叫复位、按复位按钮复位,由于系统复位了,所以复位原因很难通过常用的手段记录到系统日志中,这样事后就很难知道系统的复位原因,从而难以定位产品问题所在,因此不易提高产品的稳定性。
因此,现有技术存在缺陷,需要改进。
发明内容
本发明的目的在于提供一种设置系统复位原因监控信息的方法和监控系统复位原因的方法,用于在系统复位后分析原因,从而确定产品的问题所在。
本发明的技术方案如下:
一种设置系统复位原因监控信息的方法,其包括步骤:A1、系统初始化时保留第一内存区,用于存储监控信息;A2、系统启动后,把系统在复位前所存储的所述监控信息复制到第二内存区;A3、对所述第一内存区进行清零,并把第一内存区的头两个WORD位置分别设置成第一魔术字和第二魔术字;A4、设置第一钩子函数,用于记录命令行操作复位设备的动作,当命令行操作复位设备时,所述第一钩子函数被触发,将所述第一内存区的第三个WORD位置设置为第三魔术字;A5、设置第二钩子函数,用于记录软件操作复位设备的动作,当软件操作复位设备时,所述第二钩子函数被触发,将所述第一内存区的第四个WORD位置设置为第四魔术字。
所述设置系统复位原因监控信息的方法,其中,步骤A3中,所述第一魔术字和第二魔术字分别设置为0xabcdef55、0x55fedcba。
所述设置系统复位原因监控信息的方法,其中,所述第四魔术字设置为与所述第三魔术字相同。
所述设置系统复位原因监控信息的方法,其中,步骤A4中,所述第三魔术字设置为0xaaaaaaaa。
一种监控系统复位原因的方法,其包括步骤:B1、系统初始化时保留第一内存区,用于存储监控信息;B2、系统启动后,把系统在复位前所存储的所述监控信息复制到第二内存区;B3、对所述第一内存区进行清零,并把第一内存区的头两个WORD位置分别设置成第一魔术字和第二魔术字;B4、设置第一钩子函数,用于记录命令行操作复位设备的动作,当命令行操作复位设备时,所述第一钩子函数被触发,将所述第一内存区的第三个WORD位置设置为第三魔术字;B5、设置第二钩子函数,用于记录软件操作复位设备的动作,当软件操作复位设备时,所述第二钩子函数被触发,将所述第一内存区的第四个WORD位置设置为第四魔术字;B6、分析系统在复位前所存储的所述监控信息,得到系统复位的原因,所述监控信息存储在所述第二内存区中;具体包括以下步骤:C1、判断头两个WORD位置是否所述第一魔术字和所述第二魔术字,是则执行步骤C2,否则确定为系统由断电导致的复位;C2、判断第三个WORD位置是否所述第三魔术字,是则确定为命令行操作复位,否则执行步骤C3;C3、判断第四个WORD位置是否所述第四魔术字,是则确定为软件操作复位设备,否则执行步骤C4;C4、确定为其他原因导致的系统复位。
所述监控系统复位原因的方法,其中,所述步骤C4具体包括:确定为硬件狗叫或按复位按钮导致的系统复位。
所述监控系统复位原因的方法,其中,还包括步骤B7:生成包含系统复位的原因信息的文件,并保存到掉电内容不丢失的存储装置中。
所述监控系统复位原因的方法,其中,步骤B3中,所述第一魔术字和第二魔术字分别设置为0xabcdef55、0x55fedcba。
所述监控系统复位原因的方法,其中,所述第四魔术字设置为与所述第三魔术字相同。
所述的监控系统复位原因的方法,其中,步骤B4中,所述第三魔术字设置为0xaaaaaaaa。
采用上述方案,本发明可以监控到系统复位的各种原因,为事后定位系统故障提供有效的记录信息,以便于定位系统问题,提高产品在应用中的稳定性。
附图说明
图1为本发明的设置系统复位原因监控信息的方法流程图;
图2为本发明的监控系统复位原因的方法流程图;
图3为本发明监控系统复位原因的方法的一种实施方式的流程图。
具体实施方式
以下对本发明的较佳实施例加以详细说明。
本发明主要利用了各数据通信产品的软硬件特性,具体说明如下。
内存非断电复位其内容不丢失的特性,由于内存在设备复位后里面所记录的信息是不会丢失的,还是复位前保留的原值,这就为本发明记录一些相关信息提供了一个高速的媒质,并且不会因为本发明加入监控信息影响系统的正常运行。如果断电复位设备则内存里的内容就会丢失,这就为本发明区分断电复位和硬件狗复位提供了依据,可以在内存记录区加入魔术字(magic number),通过校验魔术字来确定设备是否为断电复位。
嵌入式系统可以为用户保留部分内存的特性,数据通信产品使用的操作系统一般会为用户保留一部分内存,操作系统不会控制这块内存,而用户可以使用这一部分内存,这样当设备复位并再次启动后,本发明复位前记录的监控信息就不会被操作系统清理掉,为本发明根据这些监控信息确定上次复位的原因提供了支撑。
命令行复位系统和软件自复位系统的入口可控性特性,通过命令行复位系统,本发明可以在复位函数入口去加入钩子函数监控命令行复位动作,软件自复位操作系统也在底层提供了一个统一的复位函数,这样就可以在这里面加入钩子函数(hook)监控软件自复位的动作。
据此,如图1所示,本发明提供了一种设置系统复位原因监控信息的方法(简称设置方法),其包括以下步骤。
A1、系统初始化时保留第一内存区,用于存储监控信息;例如,保留至少四个字(Word)的区域,作为监控信息的存储区。
A2、系统启动后,把系统在复位前所存储的所述监控信息复制到第二内存区(即记录区);本发明对于第二内存区的大小不作限制,至少不得小于所述第一内存区即可,这样才能够存储第一内存区中所存储的所述监控信息。
A3、对所述第一内存区进行清零,并把第一内存区的头两个WORD位置分别设置成第一魔术字和第二魔术字;例如,可以将所述第一魔术字和第二魔术字分别设置为0xabcdef55、0x55fedcba。所述第一魔术字和第二魔术字可以分别占据1个字(Word)的位置,即两个字节(Byte)。通过两个魔术字占据两个WORD位置,可以避免内存短时间掉电内容不丢失,从而引起误判系统复位原因;当然也可以使用其它魔术字,只要能够避免内存短时间掉电内容不丢失从而引起误判系统复位原因的概率即可。
A4、设置第一钩子函数,用于记录命令行操作复位设备的动作,当命令行操作复位设备时,所述第一钩子函数被触发,将所述第一内存区的第三个WORD位置设置为第三魔术字;例如,可以将所述第三魔术字设置为0xaaaaaaaa。
A5、设置第二钩子函数,用于记录软件操作复位设备的动作,当软件操作复位设备时,所述第二钩子函数被触发,将所述第一内存区的第四个WORD位置设置为第四魔术字。其中,所述第四魔术字可以设置为与所述第三魔术字相同,例如,可以将第三魔术字和第四魔术字同时设置为0xaaaaaaaa。当然,也可以设置为不相同。
采用上述方法,对于系统的三种复位原因,进行了基本定义,设置了系统复位原因的监控信息,为分析系统复位原因提供了具体的参考。
同时,在所述设置方法的基础上,如图2所示,本发明还提供了一种监控系统复位原因的方法(简称监控方法),其包括步骤:
B1、系统初始化时保留第一内存区,用于存储监控信息;
B2、系统启动后,把系统在复位前所存储的所述监控信息复制到第二内存区;
B3、对所述第一内存区进行清零,并把第一内存区的头两个WORD位置分别设置成第一魔术字和第二魔术字;
B4、设置第一钩子函数,用于记录命令行操作复位设备的动作,当命令行操作复位设备时,所述第一钩子函数被触发,将所述第一内存区的第三个WORD位置设置为第三魔术字;
B5、设置第二钩子函数,用于记录软件操作复位设备的动作,当软件操作复位设备时,所述第二钩子函数被触发,将所述第一内存区的第四个WORD位置设置为第四魔术字;
B6、分析系统在复位前所存储的所述监控信息,得到系统复位的原因,所述监控信息存储在所述第二内存区中;具体包括以下步骤:
C1、判断头两个WORD位置是否所述第一魔术字和所述第二魔术字,是则执行步骤C2,否则确定为系统由断电导致的复位;
C2、判断第三个WORD位置是否所述第三魔术字,是则确定为命令行操作复位,否则执行步骤C3;
C3、判断第四个WORD位置是否所述第四魔术字,是则确定为软件操作复位设备,否则执行步骤C4;
C4、确定为其他原因导致的系统复位。例如,确定为硬件狗叫或按复位按钮导致的系统复位。
在步骤B6之后,所述监控方法还包括步骤B7:生成包含系统复位的原因信息的文件,并保存到掉电内容不丢失的存储装置中,用于之后的分析工作。
其中,步骤B1至B5,具体可以与上述设置方法中的步骤A1至A5相同或相似,例如,第一至第四魔术字的设置与上述第一至第四魔术字的具体设置方法相同。
如图3所示,是本发明的监控方法的一个具体实施例,分为如下步骤:
1.操作系统初始化时保留一块内存区域留给记录监控信息使用,操作系统不会控制这部分内容。
2.系统起来后把复位前系统记录的监控信息复制一份到另外一块内存区域(即记录区)以供分析使用。
3.先把记录区清零用来记录本次系统运行的信息,每次操作都要清零以保证本次监控记录不受上次影响。
4.把记录区的头两个WORD分别设置成魔术字0xabcdef55和0x55fedcba,必须使用双WORD,这样才能避免内存短时间掉电内容不丢失从而引起误判系统复位原因;也可以使用其它魔术字,但是同样必须避免内存短时间掉电内容不丢失从而引起误判系统复位原因的概率。
5.做一个钩子函数记录命令行操作函数复位设备的动作,如果使用命令行复位设备则这个钩子函数被触发就在记录区第三个WORD处设置为0xaaaaaaaa(标识例外状况未处理的异常的代码),也可以使用其它魔术字,但是同样必须避免内存短时间掉电内容不丢失从而引起误判系统复位原因的概率。
例如,记录命令行操作函数复位设备的动作的钩子函数如下:
void uasReloadRecord()
{
g_uas SystemMonitorInfo->uas_reload=0xaaaaaaaa;
caeheFlush(DATA_CACHE,(char*)g_uasSystemMonitorInfo,
sizeof(UAS_SYS_MON_INFO));
}
6.做一个钩子函数记录软件自复位操作函数复位设备的动作,如果使用软件自动复位设备则这个钩子函数被触发就在记录区第四个WORD处设置为0xaaaaaaaa,也可以与第三个WORD不相同,也可以使用其它魔术字,但是要注意避免内存短时间掉电内容不丢失从而引起误判系统复位原因的概率。
7.分析上次系统复位的记录信息,如图3所示,如果记录区头两个WORD不是魔术字0xabcdef55和0x55fedcba则系统由断电导致的复位;如果魔术字校验正确并且记录区第三个WORD处值为0xaaaaaaaa则系统上次复位原因为命令行复位;如果魔术字校验正确并且记录区第四个WORD处值为0xaaaaaaaa则系统上次复位原因为软件自动复位;如果魔术字校验正确但是记录区的第三个WORD处值不为0xaaaaaaaa并且第四个WORD处值不为0xaaaaaaaa则系统为硬件狗叫或者是按复位按钮导致的系统复位。
8.把分析过的复位信息用文件保存在flash上,也可以放到硬盘等掉电内容不丢失的存储装置上,以备后续分析。
综上,采用上述方案,本发明可以监控到系统复位的各种原因,为事后定位系统故障提供有效的记录信息,以便于定位系统问题,提高产品在应用中的稳定性。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (10)
1、一种设置系统复位原因监控信息的方法,其包括步骤:
A1、系统初始化时保留第一内存区,用于存储监控信息;
A2、系统启动后,把系统在复位前所存储的所述监控信息复制到第二内存区;
A3、对所述第一内存区进行清零,并把第一内存区的头两个WORD位置分别设置成第一魔术字和第二魔术字;
A4、设置第一钩子函数,用于记录命令行操作复位设备的动作,当命令行操作复位设备时,所述第一钩子函数被触发,将所述第一内存区的第三个WORD位置设置为第三魔术字;
A5、设置第二钩子函数,用于记录软件操作复位设备的动作,当软件操作复位设备时,所述第二钩子函数被触发,将所述第一内存区的第四个WORD位置设置为第四魔术字。
2、根据权利要求1所述设置系统复位原因监控信息的方法,其特征在于,步骤A3中,所述第一魔术字和第二魔术字分别设置为0xabcdef55、0x55fedcba。
3、根据权利要求1所述设置系统复位原因监控信息的方法,其特征在于,所述第四魔术字设置为与所述第三魔术字相同。
4、根据权利要求1或3所述设置系统复位原因监控信息的方法,其特征在于,步骤A4中,所述第三魔术字设置为0xaaaaaaaa。
5、一种监控系统复位原因的方法,其包括步骤:
B1、系统初始化时保留第一内存区,用于存储监控信息;
B2、系统启动后,把系统在复位前所存储的所述监控信息复制到第二内存区;
B3、对所述第一内存区进行清零,并把第一内存区的头两个WORD位置分别设置成第一魔术字和第二魔术字;
B4、设置第一钩子函数,用于记录命令行操作复位设备的动作,当命令行操作复位设备时,所述第一钩子函数被触发,将所述第一内存区的第三个WORD位置设置为第三魔术字;
B5、设置第二钩子函数,用于记录软件操作复位设备的动作,当软件操作复位设备时,所述第二钩子函数被触发,将所述第一内存区的第四个WORD位置设置为第四魔术字;
B6、分析系统在复位前所存储的所述监控信息,得到系统复位的原因,所述监控信息存储在所述第二内存区中;具体包括以下步骤:
C1、判断头两个WORD位置是否所述第一魔术字和所述第二魔术字,是则执行步骤C2,否则确定为系统由断电导致的复位;
C2、判断第三个WORD位置是否所述第三魔术字,是则确定为命令行操作复位,否则执行步骤C3;
C3、判断第四个WORD位置是否所述第四魔术字,是则确定为软件操作复位设备,否则执行步骤C4;
C4、确定为其他原因导致的系统复位。
6、根据权利要求5所述监控系统复位原因的方法,其特征在于,所述步骤C4具体包括:确定为硬件狗叫或按复位按钮导致的系统复位。
7、根据权利要求5所述监控系统复位原因的方法,其特征在于,还包括步骤B7:生成包含系统复位的原因信息的文件,并保存到掉电内容不丢失的存储装置中。
8、根据权利要求5所述监控系统复位原因的方法,其特征在于,步骤B3中,所述第一魔术字和第二魔术字分别设置为0xabcdef55、0x55fedcba。
9、根据权利要求5所述监控系统复位原因的方法,其特征在于,所述第四魔术字设置为与所述第三魔术字相同。
10、根据权利要求5或9所述的监控系统复位原因的方法,其特征在于,步骤B4中,所述第三魔术字设置为0xaaaaaaaa。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710075183 CN101071396A (zh) | 2007-06-22 | 2007-06-22 | 一种设置系统复位原因监控信息的方法以及监控方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200710075183 CN101071396A (zh) | 2007-06-22 | 2007-06-22 | 一种设置系统复位原因监控信息的方法以及监控方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101071396A true CN101071396A (zh) | 2007-11-14 |
Family
ID=38898628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200710075183 Pending CN101071396A (zh) | 2007-06-22 | 2007-06-22 | 一种设置系统复位原因监控信息的方法以及监控方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101071396A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103443734A (zh) * | 2011-02-15 | 2013-12-11 | 大陆汽车系统公司 | 硬件复位原因 |
CN107894932A (zh) * | 2016-09-29 | 2018-04-10 | 厦门雅迅网络股份有限公司 | 保持系统重启前后数据一致性的方法及其系统 |
CN108762961A (zh) * | 2018-05-14 | 2018-11-06 | 深圳Tcl新技术有限公司 | 显示终端的故障回溯方法、显示终端及可读存储介质 |
-
2007
- 2007-06-22 CN CN 200710075183 patent/CN101071396A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103443734A (zh) * | 2011-02-15 | 2013-12-11 | 大陆汽车系统公司 | 硬件复位原因 |
CN103443734B (zh) * | 2011-02-15 | 2017-06-20 | 大陆汽车系统公司 | 硬件复位原因处理器及其方法 |
CN107894932A (zh) * | 2016-09-29 | 2018-04-10 | 厦门雅迅网络股份有限公司 | 保持系统重启前后数据一致性的方法及其系统 |
CN108762961A (zh) * | 2018-05-14 | 2018-11-06 | 深圳Tcl新技术有限公司 | 显示终端的故障回溯方法、显示终端及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100511158C (zh) | 一种内存监控管理的方法及系统 | |
CN102591591B (zh) | 磁盘检测系统、磁盘检测方法以及网络存储系统 | |
US9946600B2 (en) | Method of detecting power reset of a server, a baseboard management controller, and a server | |
CN101582046B (zh) | 一种高可用的系统状态监控、预测以及智能管理方法 | |
CN101887393A (zh) | 基于半虚拟化技术的设备故障复现方法及系统 | |
CN105024879A (zh) | 虚拟机故障检测、恢复系统及虚拟机检测、恢复、启动方法 | |
CN104751062B (zh) | 一种提高操作系统可靠性的方法及装置 | |
CN101739311A (zh) | 一种安全备份内存数据的方法及装置 | |
CN101251822A (zh) | 一种内存被改写的监控方法 | |
CN109614267A (zh) | 一种修复开机异常问题的方法、装置、存储介质及终端 | |
CN101441589A (zh) | 基板管理控制器的检测方法及服务器 | |
CN103207816A (zh) | 一种Linux系统修复方法 | |
US20030182527A1 (en) | Write Protection State Change Initiation Sequence | |
CN110597779A (zh) | 一种分布式文件系统中的数据读写方法及相关装置 | |
CN101071396A (zh) | 一种设置系统复位原因监控信息的方法以及监控方法 | |
CN102662787A (zh) | 一种保护系统盘raid的方法 | |
US20090192780A1 (en) | Hardware emulation using on-the-fly virtualization | |
CN100561451C (zh) | 用于网络储存系统的硬盘更换控制管理方法 | |
US6182244B1 (en) | System and method for automatically initiating a tracing facility and dynamically changing the levels of tracing currently active | |
CN116560916A (zh) | 一种磁盘切换方法、系统、装置、介质及分布式存储系统 | |
CN111324486A (zh) | expander芯片挂死的修复方法、系统及相关装置 | |
CN1318964C (zh) | 通信设备复位信息保存方法 | |
CN100445982C (zh) | 多还原点的计算机还原系统及方法 | |
CN109634796A (zh) | 一种计算机的故障诊断方法、装置及系统 | |
CN109086085A (zh) | 一种操作系统启动管理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20071114 |