一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

全液晶仪表记录程序异常数据的方法与流程

2022-03-26 12:49:13 来源:中国专利 TAG:


1.本发明涉及全液晶仪表监测技术,属于仪器仪表领域。


背景技术:

2.全液晶仪表包含boot、内核、根文件系统、驱动程序、应用程序等多个组成部分,全液晶仪表因为其复杂性,相比于传统仪表裸机无操作系统,或者运行较为简单的实时操作系统,发生问题的可能性更高,问题点更隐蔽,不易排查。而且如果是内核、驱动等操作系统底层出现问题,问题较为偶发,不易复现,对排查程序问题提出了极大的挑战。同时,因为问题比较偶发,派遣人员全现场排查问题,不一定能复现问题,有的问题往往几个月可能才发生一例,派人长期跟踪,浪费了大量的人力物力,也不一定能够跟踪到问题。因此,急需一种手段,确保在程序发生异常的时候,有效地记录问题,尽可能的保留现场数据,以便开发人员进行分析。


技术实现要素:

3.本发明目的是为了解决全液晶仪表监测异常数据时存在的问题,提供了一种全液晶仪表记录程序异常数据的方法。
4.本发明所述全液晶仪表记录程序异常数据的方法,该方法包括以下步骤:
5.利用虚拟机执行双内核策略,在程序崩溃、系统未崩溃时通过主内核保存异常数据,在程序崩溃、系统崩溃时通过监视内核保存异常数据,以供后续分析全液晶仪表存在的问题;
6.主内核的运行流程包括:
7.a1、启动主内核;
8.a2、定时记录日志文件;
9.a3、判断程序是否崩溃,
10.若程序未崩溃,返回执行步骤a2;若程序崩溃,则执行步骤a4;
11.a4、转储主内核定时存储的日志文件;同时,通过回溯跟踪函数backtrace将程序崩溃时的堆栈数据重定向存储至日志文件;并转储dump文件;
12.监视内核的运行流程包括:
13.b1、启动监视内核;
14.b2、定时读取日志文件;
15.b3、判断两次读取的日志文件是否有变化,
16.若两次读取的日志文件不相同,表征系统未崩溃,返回执行步骤b2;若两次读取的日志文件相同,表征系统崩溃,则执行步骤b4;
17.b4、转储主内核定时存储的日志文件,并转储dump文件。
18.优选地,步骤a2中主内核定时记录日志文件的过程为:
19.当应用程序启动后,以固定的时间间隔存储信息以生成日志文件,每组信息均加
上时间戳,每组信息记录完毕后插入换行符,以分隔开相邻两组信息。
20.优选地,存储的信息包括内存使用量、cpu负载率、gpu负载率、系统时间、芯片温度、按键操作、功能模块使用情况和串口接收情况数据。
21.优选地,所述双内核策略为:开机,boot引导内核启动,由虚拟机在该内核中虚拟划分出主内核和监视内核,并硬件隔离开两个内核。
22.优选地,异常数据通过u盘导出,或通过wifi导出。
23.优选地,步骤a3中判断程序是否崩溃的方法为:当主内核捕捉到程序崩溃信号时判定其为程序崩溃。
24.优选地,步骤b3中判断两次读取的日志文件是否有变化的方法为:判断两次读取的日志文件行数是否相同,若相同,表征主内核正常运行,正常存储日志文件;若不相同,则表征主内核崩溃,不再存储日志文件。
25.本发明的有益效果:本发明是一种记录全液晶仪表程序异常数据的方法。能够在第一时间记录问题发生时的现场数据,对于不易复现偶发问题,通过该方法记录的数据,为解决问题,提供了大量的有效数据,为进一步解决程序问题提供了帮助。同时,节省了外派人员到现场复现问题的人力成本,节省了大量的人力物力。采用u盘或者wifi模块均可以导出数据,简单易行,通过开发人员的远程指导,可以快速的获取问题数据,及时解决问题。
26.该方法能够在全液晶仪表程序发生异常的时候,尽可能保留有用的数据,并有效保存。同时,通过u盘或者wifi模块就可以导出数据,操作简单。发生问题的时候,无需人员到现场进行支持,只需要远程协调现场人员导出数据,从而第一时间获取到问题数据。对于隐蔽的问题点,能够尽可能详尽地记录数据,省去了人员现场排查复现的时间。在记录问题,尤其是几个月才能发生一次的偶发问题上,节省了大量的时间,节约了人力物力。
附图说明
27.图1是本发明所述全液晶仪表记录程序异常数据的方法的原理框图;
28.图2是主内核记录程序异常数据的流程图;
29.图3是监测内核记录程序异常数据的流程图。
具体实施方式
30.具体实施方式一:下面结合图1至3说明本实施方式,本实施方式所述全液晶仪表记录程序异常数据的方法,该方法包括以下步骤:
31.利用虚拟机执行双内核策略,在程序崩溃、系统未崩溃时通过主内核保存异常数据,在程序崩溃、系统崩溃时通过监视内核保存异常数据,以供后续分析全液晶仪表存在的问题;
32.当程序发生异常时,分为两种情况,情况一、程序崩溃,内核未崩溃(系统未崩溃);情况二、程序崩溃,内核崩溃(系统崩溃)。
33.在程序崩溃、系统未崩溃时通过主内核保存异常数据,主内核的运行流程包括:
34.a1、启动主内核;
35.a2、定时记录日志文件;
36.a3、判断程序是否崩溃,
37.若程序未崩溃,返回执行步骤a2;若程序崩溃,则执行步骤a4;
38.a4、转储主内核定时存储的日志文件;同时,通过回溯跟踪函数backtrace将程序崩溃时的堆栈数据重定向存储至日志文件;并转储dump文件;
39.其中,步骤a2中主内核定时记录日志文件的过程为:
40.当应用程序启动后,以固定的时间间隔存储信息以生成日志文件,每组信息均加上时间戳,每组信息记录完毕后插入换行符,以分隔开相邻两组信息。
41.存储的信息包括内存使用量、cpu负载率、gpu负载率、系统时间、芯片温度、按键操作、功能模块使用情况和串口接收情况数据。
42.对于程序崩溃,内核未崩溃的情况,操作系统仍可以正常运行,此时通过回溯系统backtrace将程序崩溃时的堆栈数据重定向存储至日志文件。并将系统产生的备份文件系统dump文件进行转储,便于今后分析。
43.其中,步骤a3中判断程序是否崩溃的方法为:当主内核捕捉到程序崩溃信号时判定其为程序崩溃。主内核运行过程中若程序崩溃是会发出崩溃信号的,当主内核捕捉到程序崩溃信号时就可判定为程序崩溃,执行图2中所述的流程,当程序崩溃时,导出三个文件给研发人员,第一个为主内核定时存储的日志文件,第二个为通过回溯跟踪函数backtrace将程序崩溃时的堆栈数据重定向存储至日志文件,第三个为转储dump文件,dump为系统转储文件,是系统自动生成的文件。
44.在程序崩溃、系统崩溃时通过监视内核保存异常数据,监视内核的运行流程包括:
45.b1、启动监视内核;
46.b2、定时读取日志文件;
47.b3、判断两次读取的日志文件是否有变化,
48.若两次读取的日志文件不相同,表征系统未崩溃,返回执行步骤b2;若两次读取的日志文件相同,表征系统崩溃,则执行步骤b4;
49.b4、转储主内核定时存储的日志文件,并转储dump文件。
50.其中,步骤b3中判断两次读取的日志文件是否有变化的方法为:判断两次读取的日志文件行数是否相同,若相同,表征主内核正常运行,正常存储日志文件;若不相同,则表征主内核崩溃,不再存储日志文件。
51.对于内核崩溃的情况,操作系统无法正常运行。此时无法通过操作系统,储存崩溃时的日志文件。针对这一情况,采用双内核策略,开机,boot引导内核启动,然后会运行一个虚拟机,两个虚拟内核在虚拟机中运行,并且两个虚拟内核硬件隔离,避免一个崩溃影响到另一个内核。每个固定时间访问存储的日志文件。因为日志文件每隔固定时间会主内核都会写入固定的必要系统信息数据,并添加时间戳,每条信息都进行换行。所以,只要主内核正常工作,日志文件的行数就会一直增加。监视内核通过读取日志文件,发现多次读取的日志文件行数没有变化后,判定主内核崩溃,转储日志文件,以供开发人员导出分析。
52.实施方式二,本实施方式与实施方式一的不同之处在于,异常数据通过u盘导出,或通过wifi导出。
53.有两种方式可以导出存储在仪表中的日志文件,一是通过u盘导出,在usb升级界面下长按右键,触发u盘导出日志的操作。二是通过wifi导出,在无线升级界面下长按右键,触发wifi导出日志u盘的操作。同时,还可以通过无线升级界面长按下键,进入wifi远程调
试模式,配合服务器端应程序,实时传输仪表日志信息,便于开发人员远程分析。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献