本申请涉及车载系统技术领域,尤其涉及一种车载系统异常处理的方法及装置。
背景技术:
随着智能车技术的不断发展,越来越多的汽车安装了包括智能娱乐系统等的车载系统。车载系统能够实现很多功能以满足人们的需求,系统复杂。当车载系统出现异常时,需要用户把车辆开到维修店,由工程师近端检查,从而对异常进行问题的定位,确定异常出现的原因,费时费力用户体验较差。一方面发生问题时,问题定位需要由人工进行,实时性差、操作繁琐等问题日益突出;另一方面,同一个问题需要人工重复定位,浪费人力、物力。
技术实现要素:
本申请提供一种车载系统异常处理的方法,能够根据车载系统中运行异常的程序的程序标识,给出异常处理建议或异常原因,避免了人工处理,节约人力成本。
第一方面,提供一种车载系统异常处理的方法,所述方法包括:车载客户端获取第一程序的程序标识,所述第一程序是运行异常的程序;所述车载客户端向服务端发送处理请求,所述处理请求用于指示所述服务端根据第一映射关系确定与所述第一异常标识信息对应的第一处理结果,所述处理请求携带第一异常标识信息,所述第一异常标识信息包括所述第一程序的程序标识,所述第一映射关系记录有多个异常标识信息与多个处理结果的对应关系,每个异常标识信息包括一个程序标识。
在车载系统出现异常时,根据第一异常标识信息,第一异常标识信息包含车载系统中运行异常的程序的程序标识,请求服务端确定与第一异常标识信息对应的第一处理结果,避免了人工处理,节约人力成本。
应当理解,车载客户端可以根据所述第一程序的程序标识生成第一异常标识信息,车载客户端可以向服务端发送处理请求,所述处理请求携带所述第一异常标识信息,所述处理请求用于指示所述服务端确定与所述第一异常标识信息对应的第一处理结果。
结合第一方面,在一些可能的实现方式中,所述第一程序的代码中包括所述第一程序的程序标识。
通过将第一程序的程序标识写入第一程序的代码中,降低车载客户端获取第一程序的程序标识的难度,减小系统开销。
结合第一方面,在一些可能的实现方式中,车载客户端获取第一程序的程序标识,包括:所述车载客户端获取异常堆栈信息,所述异常堆栈信息包括所述第一程序的程序标识。
通过异常堆栈信息,获取第一程序的程序标识,简单易实现,降低车载客户端获取第一程序的程序标识的难度,减小系统开销。
结合第一方面,在一些可能的实现方式中,当所述第一程序运行时,所述第一程序的程序标识被写入被分配所述第一程序的第一内存空间中,所述第一程序的代码中包括所述第一程序的程序标识,所述异常堆栈信息是根据所述第一内存空间确定的。
结合第一方面,在一些可能的实现方式中,每个异常标识信息还包括以下参数中的至少一个:异常日志信息、异常状态信息、资源占用信息,所述异常日志信息是根据所述第一程序对应的日志得到的,所述异常状态信息用于指示以下异常状态中的至少一种:所述车载系统内存溢出、所述车载系统内存地址错误、车载系统程序异常,所述资源占用信息用于指示所述车载系统的资源占用情况。
异常标识信息包括异常日志信息、异常状态信息、资源占用信息中的至少一种,可以使得处理结果更加准确。
结合第一方面,在一些可能的实现方式中,所述方法还包括:所述车载客户端接收所述服务端发送的处理响应,所述处理响应包括所述第一处理结果。
通过车载客户端接收第一处理结果,接收到服务端对车载系统异常的处理结果进行了反馈。
结合第一方面,在一些可能的实现方式中,所述第一异常处理结果包括第一异常处理建议、第一异常原因、影响信息中的至少一种,所述第一异常原因用于指示所述车载系统中的第一故障单元,所述影响信息用于指示受到影响的第二程序。
结合第一方面,在一些可能的实现方式中,所述第一处理结果包括第一异常原因,所述第一异常原因用于指示所述车载系统中的第一故障单元,所述方法还包括:所述车载客户端接收所述服务端发送的处理响应,所述处理响应包括影响信息,所述影响信息用于指示第二程序,所述第二程序是第二映射关系指示的与所述第一故障单元关联的程序,所述第二映射关系包括指示多个故障单元与多个程序之间的关联关系。
当一个单元出现故障时,可能有多个程序的运行受到影响。将受到故障单元影响的程序进行反馈,用户可以提前做好应对措施,提高用户体验。
结合第一方面,在一些可能的实现方式中,所述方法还包括:所述车载客户端确定满足异常条件,以确定所述车载系统出现异常,所述异常条件包括:所述车载客户端接收到指示信息,所述指示信息用于指示所述车载客户端获取第一程序的程序标识;和/或,检测到所述车载系统出现以下异常状态中的至少一种:所述车载系统内存溢出、所述车载系统内存地址错误、车载系统程序异常。
通过异常监控和用户主动触发两种方式及时采集系统信息,解决了发生问题时信息收集不及时的问题。
第二方面,提供一种车载系统异常处理的方法,所述方法包括:服务端接收车载客户端发送的处理请求,所述处理请求携带第一异常标识信息,所述第一异常标识信息包括第一程序的程序标识,所述第一程序是运行异常的程序;
所述服务端根据第一映射关系确定与所述第一异常标识信息对应的第一处理结果,所述第一处理结果包括第一异常处理建议和/或第一异常原因,所述第一映射关系记录有多个异常标识信息与多个处理结果的对应关系,每个异常标识信息包括一个程序标识,每个处理结果包括异常处理建议和/或异常原因。
在车载系统出现异常时,服务端根据第一异常标识信息,第一异常标识信息包含运行异常的程序的程序标识,确定与第一异常标识信息对应的第一处理结果,第一处理结果包括第一异常处理建议和/或第一异常原因,避免了人工处理,节约人力成本。
结合第二方面,在一些可能的实现方式中,所述第一程序的代码中包括所述第一程序的程序标识。
通过将第一程序的程序标识写入第一程序的代码中,降低车载客户端获取第一程序的程序标识的难度,减小系统开销。
结合第二方面,在一些可能的实现方式中,每个异常标识信息还包括以下参数中的至少一个:异常日志信息、异常状态信息、资源占用信息,所述异常日志信息是根据所述第一程序对应的日志得到的,所述异常状态信息用于指示以下异常状态中的至少一种:所述车载系统内存溢出、所述车载系统内存地址错误、车载系统程序异常,所述资源占用信息用于指示所述车载系统的资源占用情况。
异常标识信息包括异常日志信息、异常状态信息、资源占用信息中的至少一种,可以使得处理结果更加准确。
结合第二方面,在一些可能的实现方式中,所述方法还包括:所述服务端向所述车载客户端或与所述车载客户端对应的用户设备发送处理响应,所述处理响应包括所述第一处理结果。
通过发送第一处理结果,服务端对车载系统异常的处理结果进行了反馈。
结合第二方面,在一些可能的实现方式中,所述第一异常处理结果包括第一异常处理建议、第一异常原因、影响信息中的至少一种,所述第一异常原因用于指示所述车载系统中的第一故障单元,所述影响信息用于指示受到影响的第二程序。
结合第二方面,在一些可能的实现方式中,所述第一处理结果包括第一异常原因,所述第一异常原因用于指示所述车载系统中的第一故障单元,所述方法还包括:所述服务端根据第二映射关系确定与所述第一故障单元关联的第二程序,所述第二映射关系包括指示多个故障单元与多个程序之间的关联关系。
当一个单元出现故障时,可能有多个程序的运行受到影响。确定故障单元影响的程序进行反馈,可以提前做好应对措施,提高用户体验。
结合第二方面,在一些可能的实现方式中,所述方法还包括:所述服务端向所述车载客户端或与所述车载客户端对应的用户设备发送处理响应,所述处理响应包括影响信息,所述影响信息用于指示所述第二程序。
当一个单元出现故障时,可能有多个程序的运行受到影响。将受到故障单元影响的程序进行反馈,用户可以提前做好应对措施,提高用户体验。
结合第二方面,在一些可能的实现方式中,所述方法还包括:所述服务端向所述车载客户端发送指示信息,所述指示信息用于指示所述车载客户端向所述服务端发送所述处理请求。
通过用户主动触发两种方式及时采集系统信息,解决了发生问题时信息收集不及时的问题。
第三方面,提供一种车载系统异常处理装置,其特征在于,包括:获取模块,用于获取第一程序的程序标识,所述第一程序是运行异常的程序;收发模块,用于向服务端发送处理请求,所述处理请求用于指示所述服务端根据第一映射关系确定与所述第一异常标识信息对应的第一处理结果,所述第一处理结果包括第一异常处理建议和/或第一异常原因,所述处理请求携带第一异常标识信息,所述第一异常标识信息包括所述第一程序的程序标识,所述第一映射关系记录有多个异常标识信息与多个处理结果的对应关系,每个异常标识信息包括一个程序标识,每个处理结果包括异常处理建议和/或异常原因。
结合第三方面,在一些可能的实现方式中,所述第一程序的代码中包括所述第一程序的程序标识。
结合第三方面,在一些可能的实现方式中,所述获取模块用于,获取异常堆栈信息,所述异常堆栈信息包括所述第一程序的程序标识。
结合第三方面,在一些可能的实现方式中,当所述第一程序运行时,所述第一程序的程序标识被写入被分配所述第一程序的第一内存空间中,所述第一程序的代码中包括所述第一程序的程序标识,所述异常堆栈信息是根据所述第一内存空间确定的。
结合第三方面,在一些可能的实现方式中,每个异常标识信息还包括以下参数中的至少一个:异常日志信息、异常状态信息、资源占用信息,所述异常日志信息是根据所述第一程序对应的日志得到的,,所述异常状态信息用于指示以下异常状态中的至少一种:所述车载系统内存溢出、所述车载系统内存地址错误、车载系统程序异常,所述资源占用信息用于指示所述车载系统的资源占用情况。
结合第三方面,在一些可能的实现方式中,所述收发模块还用于,接收所述服务端发送的处理响应,所述处理响应包括所述第一处理结果。
结合第三方面,在一些可能的实现方式中,所述第一异常处理结果包括第一异常处理建议、第一异常原因、影响信息中的至少一种,所述第一异常原因用于指示所述车载系统中的第一故障单元,所述影响信息用于指示受到影响的第二程序。
结合第三方面,在一些可能的实现方式中,所述第一处理结果包括第一异常原因,所述第一异常原因用于指示所述车载系统中的第一故障单元,所述收发模块还用于,接收所述服务端发送的处理响应,所述处理响应包括影响信息,所述影响信息用于指示第二程序,所述第二程序是第二映射关系指示的与所述第一故障单元关联的程序,所述第二映射关系包括指示多个故障单元与多个程序之间的关联关系。
结合第三方面,在一些可能的实现方式中,所述装置还包括确定模块,用于确定满足异常条件,以确定所述车载系统出现异常,所述异常条件包括:所述车载客户端接收到指示信息,所述指示信息用于指示所述车载客户端获取第一程序的程序标识;和/或,检测到所述车载系统出现以下异常状态中的至少一种:所述车载系统内存溢出、所述车载系统内存地址错误、车载系统程序异常。
第四方面,提供一种车载系统异常处理装置,包括:收发模块,用于接收车载客户端发送的处理请求,所述处理请求携带第一异常标识信息,所述第一异常标识信息包括第一程序的程序标识,所述第一程序是运行异常的程序;确定模块,用于根据第一映射关系确定与所述第一异常标识信息对应的第一处理结果,所述第一处理结果包括第一异常处理建议和/或第一异常原因,所述第一映射关系记录有多个异常标识信息与多个处理结果的对应关系,每个异常标识信息包括一个程序标识,每个处理结果包括异常处理建议和/或异常原因。
结合第四方面,在一些可能的实现方式中,所述第一程序的代码中包括所述第一程序的程序标识。
结合第四方面,在一些可能的实现方式中,每个异常标识信息还包括以下参数中的至少一个:异常日志信息、异常状态信息、资源占用信息,所述异常日志信息是根据所述第一程序对应的日志得到的,所述异常状态信息用于指示以下异常状态中的至少一种:所述车载系统内存溢出、所述车载系统内存地址错误、车载系统程序异常,所述资源占用信息用于指示所述车载系统的资源占用情况。
结合第四方面,在一些可能的实现方式中,所述收发模块还用于,向所述车载客户端或与所述车载客户端对应的用户设备发送处理响应,所述处理响应包括所述第一处理结果。
结合第四方面,在一些可能的实现方式中,所述第一异常处理结果包括第一异常处理建议、第一异常原因、影响信息中的至少一种,所述第一异常原因用于指示所述车载系统中的第一故障单元,所述影响信息用于指示受到影响的第二程序。
结合第四方面,在一些可能的实现方式中,所述第一处理结果包括第一异常原因,所述第一异常原因用于指示所述车载系统中的第一故障单元,所述确定模块还用于,根据第二映射关系确定与所述第一故障单元关联的第二程序,所述第二映射关系包括指示多个故障单元与多个程序之间的关联关系。
结合第四方面,在一些可能的实现方式中,所述收发模块还用于,向所述车载客户端或与所述车载客户端对应的用户设备发送处理响应,所述处理响应包括影响信息,所述影响信息用于指示所述第二程序。
结合第四方面,在一些可能的实现方式中,所述收发模块还用于,向所述车载客户端发送指示信息,所述指示信息用于指示所述车载客户端向所述服务端发送所述处理请求。
第五方面,提供一种车载系统异常处理装置,包括:处理器、通信接口,处理器,用于获取第一程序的程序标识,所述第一程序是运行异常的程序;通信接口,用于向服务端发送处理请求,所述处理请求用于指示所述服务端根据第一映射关系确定与所述第一异常标识信息对应的第一处理结果,所述第一处理结果包括第一异常处理建议和/或第一异常原因,所述处理请求携带第一异常标识信息,所述第一异常标识信息包括所述第一程序的程序标识,所述第一映射关系记录有多个异常标识信息与多个处理结果的对应关系,每个异常标识信息包括一个程序标识,每个处理结果包括异常处理建议和/或异常原因。
结合第五方面,在一些可能的实现方式中,所述第一程序的代码中包括所述第一程序的程序标识。
结合第五方面,在一些可能的实现方式中,处理器用于,获取异常堆栈信息,所述异常堆栈信息包括所述第一程序的程序标识。
结合第五方面,在一些可能的实现方式中,当所述第一程序运行时,所述第一程序的程序标识被写入被分配所述第一程序的第一内存空间中,所述第一程序的代码中包括所述第一程序的程序标识,所述异常堆栈信息是根据所述第一内存空间确定的。
结合第五方面,在一些可能的实现方式中,每个异常标识信息还包括以下参数中的至少一个:异常日志信息、异常状态信息、资源占用信息,所述异常日志信息是根据所述第一程序对应的日志得到的,所述异常状态信息用于指示以下异常状态中的至少一种:所述车载系统内存溢出、所述车载系统内存地址错误、车载系统程序异常,所述资源占用信息用于指示所述车载系统的资源占用情况。
结合第五方面,在一些可能的实现方式中,通信接口还用于,接收所述服务端发送的处理响应,所述处理响应包括所述第一处理结果。
结合第五方面,在一些可能的实现方式中,所述第一异常处理结果包括第一异常处理建议、第一异常原因、影响信息中的至少一种,所述第一异常原因用于指示所述车载系统中的第一故障单元,所述影响信息用于指示受到影响的第二程序。
结合第五方面,在一些可能的实现方式中,所述第一处理结果包括第一异常原因,所述第一异常原因用于指示所述车载系统中的第一故障单元,通信接口还用于,接收所述服务端发送的处理响应,所述处理响应包括影响信息,所述影响信息用于指示第二程序,所述第二程序是第二映射关系指示的与所述第一故障单元关联的程序,所述第二映射关系包括指示多个故障单元与多个程序之间的关联关系。
结合第五方面,在一些可能的实现方式中,处理器还用于,确定满足异常条件,以确定所述车载系统出现异常,所述异常条件包括:所述车载客户端接收到指示信息,所述指示信息用于指示所述车载客户端获取第一程序的程序标识;和/或,检测到所述车载系统出现以下异常状态中的至少一种:所述车载系统内存溢出、所述车载系统内存地址错误、车载系统程序异常。
第六方面,提供一种车载系统异常处理装置,包括处理器,通信接口。通信接口,用于接收车载客户端发送的处理请求,所述处理请求携带第一异常标识信息,所述第一异常标识信息包括第一程序的程序标识,所述第一程序是运行异常的程序;处理器,用于根据第一映射关系确定与所述第一异常标识信息对应的第一处理结果,所述第一处理结果包括第一异常处理建议和/或第一异常原因,所述第一映射关系记录有多个异常标识信息与多个处理结果的对应关系,每个异常标识信息包括一个程序标识,每个处理结果包括异常处理建议和/或异常原因。
结合第六方面,在一些可能的实现方式中,所述第一程序的代码中包括所述第一程序的程序标识。
结合第六方面,在一些可能的实现方式中,每个异常标识信息还包括以下参数中的至少一个:异常日志信息、异常状态信息、资源占用信息,所述异常日志信息是根据所述第一程序对应的日志得到的,所述异常状态信息用于指示以下异常状态中的至少一种:所述车载系统内存溢出、所述车载系统内存地址错误、车载系统程序异常,所述资源占用信息用于指示所述车载系统的资源占用情况。
结合第六方面,在一些可能的实现方式中,通信接口还用于,向所述车载客户端或与所述车载客户端对应的用户设备发送处理响应,所述处理响应包括所述第一处理结果。
结合第六方面,在一些可能的实现方式中,所述第一异常处理结果包括第一异常处理建议、第一异常原因、影响信息中的至少一种,所述第一异常原因用于指示所述车载系统中的第一故障单元,所述影响信息用于指示受到影响的第二程序。
结合第六方面,在一些可能的实现方式中,所述第一处理结果包括第一异常原因,所述第一异常原因用于指示所述车载系统中的第一故障单元,处理器还用于,根据第二映射关系确定与所述第一故障单元关联的第二程序,所述第二映射关系包括指示多个故障单元与多个程序之间的关联关系。
结合第六方面,在一些可能的实现方式中,通信接口还用于,向所述车载客户端或与所述车载客户端对应的用户设备发送处理响应,所述处理响应包括影响信息,所述影响信息用于指示所述第二程序。
结合第六方面,在一些可能的实现方式中,通信接口还用于,向所述车载客户端发送指示信息,所述指示信息用于指示所述车载客户端向所述服务端发送所述处理请求。
第七方面,提供一种车载系统异常处理系统,包括上文所述的车载客户端和服务端。
第八方面,提供一种计算机存储介质,当所述计算机指令在电子设备上运行时,使得所述电子设备执行第一方面所述的方法。
第九方面,提供一种计算机存储介质,当所述计算机指令在电子设备上运行时,使得所述电子设备执行第二方面所述的方法。
第十方面,提供一种芯片系统,所述芯片系统包括至少一个处理器,当程序指令在所述至少一个处理器中执行时,使得所述芯片系统执行第一方面所述的方法。
第十一方面,提供一种芯片系统,所述芯片系统包括至少一个处理器,当程序指令在所述至少一个处理器中执行时,使得所述芯片系统执行第二方面所述的方法。
附图说明
图1是一种堆栈信息的格式的示意图。
图2是本申请实施例提供的一种车载系统异常处理的方法的示意性流程图。
图3是本申请实施例提供的另一种车载系统异常处理的方法的示意性流程图。
图4是车载系统的结构关系的示意图。
图5是本申请实施例提供的一种车载系统异常处理的系统的示意图。
图6是本申请实施例提供的一种车载系统异常处理装置的示意性结构图。
图7是本申请实施例提供的另一种车载系统异常处理装置的示意性结构图。
图8是本申请实施例提供的又一种车载系统异常处理装置的示意性结构图。
图9是本申请实施例提供的又一种车载系统异常处理装置的示意性结构图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
应理解,本发明实施例可以应用各种无线通信方案进行通信,例如:全球移动通讯系统(globalsystemofmobilecommunication,gsm),码分多址(codedivisionmultipleaccess,cdma)系统,宽带码分多址(widebandcodedivisionmultipleaccesswireless,wcdma)系统,通用分组无线业务(generalpacketradioservice,gprs)系统,长期演进(longtermevolution,lte)系统,无线局域网(wirelesslocalareanetworks,wlan)等。
随着自动驾驶技术的发展,用户对车载系统越来越关注,车载系统提供的服务越来越多,系统越来越复杂。在这样复杂的车载系统中,当车载系统出现异常,如何快速定位解决问题变得非常重要。在车载电子系统出现故障时,尚无法通过自动的方式有效确定出现异常的根本原因。
对于linux车载系统,利用linux的核心转储(coredump)技术可以进行异常状态的储存。当检测到车载系统某个程序运行异常时,车载系统输出堆栈信息。通过coredump服务抓取程序异常退出时的堆栈信息。堆栈信息存储着运行异常的程序的内存地址。通过日志管理服务可以抓取运行的程序产生的相应日志。利用超文本传输协议(hypertexttransferprotocol,http)完成与网络服务器的连接、鉴权和通信,实现远程连接和异常日志自动上传,最大限度的将异常出现时的状态第一时间上报。
程序异常退出时,车载系统输出堆栈信息,堆栈信息保存在堆栈中。图1是一种堆栈信息的格式的示意图。在每个堆栈地址中,存储的新科包括异常状态信息,异常退出的程序的内存地址,程序信息,变量参数等。应当理解,图1所示的堆栈信息的格式仅是示例性地,每个堆栈地址可以包括更多或更少的信息。
异常状态信息用于指示车载系统的异常状态。异常状态例如包括内存溢出、内存地址错误、车载系统程序异常等。
变量参数是程序在运行过程中的相关参数,例如程序的输入信息等。
程序信息例如可以是程序的名称、功能等。由于程序信息未进行统一定义,无法通过程序信息准确确定运行异常的程序。
程序在车载系统中运行,车载系统每次为同一程序分配的内存空间并不相同。因此,需要维护人员根据程序的内存地址,查看内存,确定出现故障时运行的程序,从而确定该程序的功能等。结合日志信息,可以确定出现故障的原因,从而提供解决方案。
另外,上述方式没有主动采集功能,当监控服务自身出现异常时,就无法进行日志采集。
另一种车载系统异常处理的方法,利用看门狗技术、状态校验技术获知车载系统是否出现异常。异常信息包括死机、重启、操作无响应。当采集到的异常信息时,记录车载系统的日志,并将异常信息和记录的日志信息发送到用户指定的邮箱。
日志信息维护人员根据日志信息,确定生成所述日志对应的出现故障时运行的程序,从而确定该程序的功能等。结合日志信息,可以确定出现故障的原因,从而提供解决方案。
由于车载系统复杂,对于采集的信息仍需要通过人工处理以进行问题的定位,确定造成车载系统异常的原因,并提供解决方案。对车载系统异常的处理,依赖于人工,效率较低。
为了解决上述问题,本申请实施例提供了一种车载系统异常处理的方法。
图2是本申请实施例提供的一种车载系统异常处理的方法的示意性流程图。车载系统例如可以是车载娱乐系统(in-vehicleinfotainment,ivi)等。
在步骤s101,车载客户端获取第一程序的程序标识。第一程序是车载系统中运行异常的程序。
车载系统对运行的进程进行监控。当监控到异常状态时,车载系统将运行异常的程序的信息保存在堆栈中。异常状态例如可以包括以下状态中的至少一种:所述车载系统内存溢出、所述车载系统内存地址错误、车载系统程序异常等。
内存溢出即内存不足,内存大小不能够满足程序运行对内存空间的需求。
内存地址错误也可以称为段错误,程序访问的内存超出了车载系统为该程序分配的内存空间,例如程序访问了不存在的内存地址、访问了车载系统保护的内存地址、访问了只读的内存地址等等情况。
车载系统程序异常可以包括以下状态中的至少一种:车载系统程序死锁、车载系统程序异常退出等。程序死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。
车载系统程序异常的情况,第一程序可以是该异常的程序。
或者当用户发现车载系统运行出现异常时,可以指示车载客户端采集与运行的程序相关的信息。车载系统获取指示信息,所述指示信息用于指示所述车载系统将与运行异常的程序即第一程序相关的信息保存在堆栈中。将第一程序相关的信息保存在堆栈中,即在堆栈中输出第一程序相关的信息。用户可以在车载客户端或车载系统中输入指示信息,用户也可以通过其他用户设备向车载系统发送指示信息,用户还可以通过用户设备向车载服务端发送请求信息,请求信息用于请求车载服务端向车载客户端设备或车载系统发送该指示信息。车载客户端可以将该指示信息发送至车载系统。在一些实施例中,车载系统可以是车载客户端的一部分,或者,车载客户端可以是车载系统的一部分。
在一些情况下,用户感知车载系统出现异常时,但车载客户端未及时获取运行异常的程序的程序标识,用户可以指示车载客户端获取运行异常的程序的程序标识,从而及时对车载系统的异常情况进行处理。
也就是说,车载客户端确定满足异常条件,以确定所述车载系统出现异常,所述异常条件包括:所述车载客户端接收到指示信息,所述指示信息用于指示所述车载客户端获取第一程序的程序标识;和/或,检测到所述车载系统出现以下异常状态中的至少一种:所述车载系统内存溢出、所述车载系统内存地址错误、车载系统程序异常。该指示信息还可以用于指示车载客户端向服务端发送所述处理请求。车载系统程序异常可以表现为车载系统内存溢出和/或车载系统内存地址错误等。车载系统出现异常状态中的至少一种时,确定出现异常的第一程序,并输出堆栈信息。车载客户端可以根据对车载系统的检测,确定满足异常条件,也可以对车载系统输出的堆栈信息进行检测,以确定车载系统程序异常,从而确定满足异常条件。对车载客户端车载系统输出的堆栈信息进行检测,也可以理解为对车载系统程序异常的检测。
通过异常监控和用户主动触发两种方式,能够及时采集车载系统异常情况下的信息,从而尽快进行处理,提高用户体验。
车载客户端采集的信息可以包括第一程序的程序标识。车载客户端采集的信息还可以包括异常日志信息、异常状态信息、资源占用信息等中的一种或多种。
当车载系统出现异常时,车载系统输出异常堆栈信息,异常堆栈信息保存在堆栈中。当车载系统出现异常时,车载系统将与该异常相关的信息写入堆栈中。异常堆栈信息可以包括保存在堆栈中的全部或部分信息。保存在堆栈中的信息可以参见图1。
车载系统运行时,调用的程序存储在内存中。也就是说,当所述第一程序运行时,所述第一程序的程序被写入为所述第一程序分配的第一内存空间中。
在程序的代码开发时,可以在程序中写入程序标识。程序标识用于标识不同的程序。
可以定义车载系统对堆栈信息的打印规则,即定义保存在堆栈中的信息的格式。也可以定义异常堆栈信息的格式。第一程序是运行异常的程序。车载系统输出的堆栈信息可以包括第一程序的程序标识。参见图2所示的车载系统输出的堆栈信息,程序信息可以包括运行异常的程序的程序标识,或者,可以在堆栈信息中增加新的字段,运行异常的程序的程序标识作为该字段的信息。因此,第一程序对应的的异常堆栈信息可以包括第一程序的程序标识。车载系统输出的对应于第一程序的堆栈信息可以包括第一程序在内存中的地址。当监控到异常状态时,车载系统输出的对应于第一程序的堆栈信息可以包括异常状态信息,异常状态信息用于指示出现的异常状态。车载客户端可以获取异常堆栈信息,从而获取第一程序的程序标识。
车载客户端可以确定运行异常的程序对应的日志,即第一程序对应的日志。日志即车载系统的运行痕迹。根据运行异常的程序对应的日志记载的信息可以获得异常日志信息。异常日志信息可以包括运行异常的程序对应的日志记载的信息中的全部或部分内容。例如,异常日志信息可以是对运行异常的程序对应的日志记载的信息进行信息脱敏得到的。信息脱敏,即对采集的信息进行脱敏操作,保护用户隐私。
可以定义日志的格式。当程序的代码中包括程序标识,该程序对应的日志中可以包括该程序的程序标识。即,第一程序对应的异常日志信息中可以包括第一程序的程序标识。车载客户端可以获取异常日志信息,从而获取第一程序的程序标识。
或者,车载客户端可以确定第一程序在外部存储器中的地址,第一程序在外部存储器中的地址也可以称为第一程序的存储地址。例如根据异常堆栈信息中第一程序在内存中的地址,确定第一程序。车载客户端可以遍历外部存储器,从而确定第一程序的存储地址,即第一程序在外部存储器中的地址。车载客户端可以将第一程序的存储地址作为第一程序的程序标识。
对于人工进行异常处理的情况,根据车载系统的日志以及对应的程序,可以通过人工确定出现异常的原因,从而给出异常处理建议。
而对于相同的程序,导致同一异常状态的原因可能相同。因此,在人工对异常情况处理之后,可以确定异常状态标识与处理结果的一一对应关系。当然,对于相同的程序,导致异常状态的原因也可能不同,对于同一程序,异常状态标识可以对应于多个处理结果。
异常标识信息可以是根据程序标识确定的,或者异常标识信息可以是根据异常日志信息、异常状态信息、资源占用信息中的至少一个以及程序标识确定的。第一异常标识信息可以包括第一程序的程序标识。第一异常标识信息中的第一程序的程序标识可以与异常日志信息或异常堆栈信息中的第一程序的程序标识相同或不同。第一异常标识信息中的第一程序的程序标识可以是对异常日志信息或异常堆栈信息中的第一程序的程序标识进行映射如进行压缩映射得到的。
资源占用信息也可以称为操作系统信息,可以包括硬盘占用信息、句柄信息、内存占用信息、中央处理器(centralprocessingunit,cpu)占用信息等信息中的一种或多种。硬盘占用信息可以用于指示车载系统硬盘占用的情况。句柄信息可以用于指示车载系统中占用的句柄的数量。例如,句柄用于标识车载系统中打开的文件,车载系统可以为每一个打开的文件分配一个句柄。内存占用信息用于指示车载系统的内存整体占用情况。cpu占用信息用于指示车载系统的cpu占用情况。车载客户端可以向车载系统发送个请求消息,该请求消息用于指示车载系统向车载客户端发送资源占用信息。车载系统可以在接收车载客户端发送的该请求消息后向车载客户端发送资源占用信息。车载客户端可以在确定满足异常条件,即确定所述车载系统出现异常时,向车载系统发送该请求消息。车载客户端可以获取车载系统发送的资源占用信息。
异常标识信息包括资源占用信息,服务端可以从车载系统资源的占用情况,确定车载一桶的异常是否是由于资源不足车载系统的资源不足引起异常。进一步地,可以确定是由于哪个或哪些资源不足导致的车载系统异常。
异常标识信息也可以仅仅是根据程序标识确定的。此时,根据异常标识信息,可以确定一个或多个处理结果。该一个或多个处理结果可以是对应于多种异常日志信息的处理结果,或者说,该一个或多个处理结果是程序标识对应的程序运行过程中造成车载系统异常的一个或多个处理结果。异常标识信息可以包括程序标识,可以理解为,异常标识信息包括程序标识的全部信息,或者,异常标识信息包括对程序标识进行压缩映射的结果。
异常标识信息包括第一程序的程序标识。异常标识信息还可以包括异常状态信息、异常日志信息、资源占用信息中的至少一个。根据异常标识信息可以确定对应的程序。作为一种可能的方式,根据异常标识信息还可以确定对应的异常状态信息、异常日志信息、资源占用信息中的至少一种。
车载客户端获取第一程序的程序标识。车载客户端可以获取异常堆栈信息和/或第一程序对应的日志包含的第一程序的程序标识,车载客户端也可以根据异常堆栈信息确定第一程序的存储地址,车载客户端获取该存储地址,从而获取了第一程序的程序标识。
在步骤s102,车载客户端向服务端发送处理请求。处理请求携带第一异常标识信息,所述第一异常标识信息包括所述第一程序的程序标识。也就是说,处理请求包括第一程序的程序标识。
第一异常标识信息还可以包括异常日志信息和/或异常状态信息。异常状态信息用于指示以下异常状态中的至少一种:所述车载系统内存溢出、所述车载系统内存地址错误、车载系统程序异常。
处理请求用于指示服务端确定与所述第一异常标识信息对应的第一处理结果。
在步骤s103,服务端确定第一处理结果和/或影响信息。第一处理结果可以包括异常处理建议、异常原因影响信息中的至少一种。影响信息用于指示车载系统出现异常时收到影响的第二程序。第二程序可以是与导致车载系统异常的第一故障单元相关联的程序。
服务端可以根据第一映射关系确定与所述第一异常标识信息对应的第一处理结果。
在异常标识信息不包括资源占用信息的情况下,如果处理请求中携带有资源占用信息,服务端可以根据资源占用信息,即车载系统资源的占用情况,确定车载系统的异常是否是由于资源不足车载系统的资源不足导致的,并可以具体判断由于哪个或哪些资源不足导致的车载系统异常。服务端可以在确定异常不是由于资源不足导致的情况下,根据第一映射关系确定与所述第一异常标识信息对应的第一处理结果。
在确定并非由于资源不足车载系统的资源不足导致车载系统异常的情况下,根据第一映射关系确定第一处理结果。
第一映射关系记录有多个异常标识信息与多个处理结果的对应关系,每个异常标识信息包括一个程序标识。异常标识信息还可以包括异常日志信息和/或异常状态信息。
每个处理结果可以包括一个或多个处理建议,和/或,一个或多个异常原因,一个或多个受影响的程序。
服务端可以根据第一程序的程序标识确定一个或多个处理结果。第一处理结果包括该一个或多个处理结果。在第一程序的程序标识对应的处理结果为多个的情况下,服务端可以根据第一异常标识信息中的异常日志信息和/或异常状态信息,从该多个处理结果中进一步确定一个或多个处理结果。
第一处理结果可以包括第一异常原因。第一异常原因用于指示所述车载系统中的第一故障单元。也就是说,车载系统出现异常是由于第一故障单元的故障导致的。
服务端可以根据第二映射关系确定与第一故障单元关联的第二程序。第二映射关系用于指示多个故障单元与多个程序之间的关联关系。
第一故障单元的故障可能导致与第一故障单元关联的程序受到影响。服务端确定与第一故障单元关联的第二程序,第二程序是由于第一故障单元的故障可能受到影响的程序,也就是说,第二程序是第一异常标识信息对应的程序,在第一异常标识信息对应的车载系统的异常情况下,第二程序受到影响。
或者,服务端可以根据多个异常标识信息与多个程序之间的关联关系,确定第一异常标识信息对应的第二程序。
处理请求可以包括异常日志信息,第一异常标识信息可以包括异常日志信息,或者,异常日志信息可以位于处理请求中异常日志信息之外的其他字段。
当第一映射关系中不存在第一异常标识信息对应的处理结果时,可以由人工确定第一处理结果。通过人工的方式,可以根据异常日志信息和第一程序的程序标识确定第一处理结果。之后,对第一映射关系进行更新,将第一异常标识信息与第一处理结果的对应关系添加在第一映射关系中。
或者,服务端可以根据第三映射关系,确定第二程序。第三映射关系记录有多个异常标识信息与多个程序的对应关系。
在步骤s103之后,服务端发送处理响应。处理响应可以包括第一处理结果和/或影响信息。
服务端可以向车载客户端发送处理响应,或者,服务端可以向车载客户端对应的用户设备发送处理响应。车载客户端对应的用户设备可以提前注册在服务端,也就是说,服务端保存有车载客户端与用户设备的对应关系。
服务端与车载客服端可以是各自独立的设备,也可以集成于同一设备中实现不同的功能。服务端与车载客服端之间的信息传输可以通过有线或无线的方式进行。
通过步骤s101-s103,当车载系统出现异常时,能够自动提供处理结果,以解决车载系统中的问题,解决了发生问题需要维护人员近端定位的问题,节约时间,提高用户体验。
图3是本申请实施例提供的一种车载系统异常处理的方法的示意性流程图。
在步骤s201,规范定义。
在程序开发阶段,定义程序标识。定义堆栈信息打印规范和日志打印规范。
程序标识用于标识一段程序。每种程序用于执行一种对应的方法。程序标识例如可以包括服务名称、功能名称和方法名称,程序标识music::play::playnext可以用于表示播放下一首音乐的程序名称,其中,playnext为方法名称,play为功能名称,music为服务名称。
车载系统可以在检测到异常状态时,打印堆栈信息,即在堆栈中记录与异常相关的信息,即车载系统可以根据监控,在异常的情况下在堆栈中记录与异常相关的信息。车载系统也可以在接收指示信息时,在堆栈中记录与异常相关的信息。指示信息可以用于指示出现异常状态,或者,该指示信息可以用于指示车载客户端获取第一程序的程序标识,或者,该指示信息可以用于指示车载客户端向服务端发送所述处理请求。
该指示信息可以是用户输入车载系统,或者,可以由用户设备发送至车载系统,或者,也可以由用户设备向服务端发送指示,由服务端向车载设备发送该指示信息。
堆栈中记录的与异常相关的信息的格式可以参见图1。程序信息可以包括异常程序标识。车载客户端可以在堆栈中记录的与异常相关的信息中提取异常堆栈信息。异常堆栈信息可以包括异常状态信息,异常状态信息用于指示异常状态。异常状态信息也可以称为异常信号量。异常状态例如包括内存溢出、内存地址错误、车载系统程序异常等。其中,内存溢出、内存地址错误的异常情况可以由车载系统检测确定发生。
异常堆栈信息可以包括异常程序标识,异常程序标识即出现异常状态时运行的程序的程序标识。
异常堆栈信息还可以包括异常状态时运行的程序的内存地址。
日志可以记录程序的运行轨迹。在打印日志时,增加日志前缀,可以使得日志信息与程序的对应关系更加明确。日志前缀例如可以包括服务名称、功能名称等,如日志前缀可以包括music::play::playnext。
在步骤s202,知识库建立。
知识库可以包括两个部分,一部分是车载系统的结构关系,另一部分是异常问题库。
如图4所示的车载系统的结构关系的示意图,车载系统中的各个单元之间存在依赖关系。一个底层单元为多种上层单元提供支持。应当理解,底层单元与上层单元是相对的概念。底层单元也可以称为下层单元。在车载系统中,从底层到上层可以依次为服务单元、功能单元、方法单元。当一种底层单元出现故障时,依赖于该底层单元的其他上层单元提供的方法和/或功能也会出现异常,即该底层单元的上层单元会受到影响。例如,车服务单元作为底层单元为其上层单元空调功能单元、音乐功能单元等提供支持,空调功能单元作为底层单元为其上层单元启动方法单元、温度调节方法单元等提供支持。当车服务单元出现故障时,依赖于车服务单元的空调功能单元提供的多种方法也会出现异常。
车载系统的结构关系也可以理解为多个故障单元与多个程序之间的关联关系。一个程序可以用于实现一种方法,可以对应于一个方法单元,即程序可以与方法单元一一对应。车载系统出现异常,可能是由于服务单元、功能单元、方法单元中的一个或多个单元的异常或故障导致的。当车载系统出现异常时,可以根据车载系统的结构关系,确定可能出现故障的多个单元。在进行人工分析时,结合异常状态信息、异常日志信息、资源占用信息中的一种或多种,可以进一步从该多个单元中确定可能出现故障的一个或多个单元。在一个单元故障时,根据车载系统的结构关系可以确定收到该功能影响的一个或多个程序,即确定故障单元与一个或多个程序之间的关联关系。
异常问题库包括第一映射关系,即多个异常标识信息与多个处理结果的对应关系。每个处理结果包括异常处理建议和/或异常原因。
异常标识信息可以是对异常程序标识、异常状态信息、异常日志信息进行压缩映射得到的。
通过步骤s201-s202,完成了车载设备诊断方法的准备阶段。
在步骤s203,车载系统异常数据采集。
获取车载系统的信息,例如:异常服务堆栈信息、异常服务日志信息、资源占用信息等。
可以提供两种车载系统异常数据采集的方式。在两种情况下,进行车载系统异常数据的采集。一种是车载系统的根据监控进行信息采集,另外一种是在接收指示信息时进行采集。采集的信息可以包括异常堆栈信息、异常日志信息等,用于后续的异常定位。异常定位即确定异常原因或给出异常处理建议。异常原因用于指示车载系统中的故障单元,故障单元导致车载系统出现异常,即车载系统出现异常是由于故障单元的故障造成的。异常处理建议即车载系统异常的解决方案。
s204,知识库检索。
知识库可以存储在服务端中。车载设备可以将采集的原始数据或经过处理后的数据发送至服务端。
异常堆栈信息可以包括异常状态信息、异常程序标识。根据异常堆栈信息可以确定与该异常堆栈信息对应的异常日志信息。
异常标识信息可以是根据异常堆栈信息、异常日志信息得到的。例如可以对异常堆栈信息、异常日志信息进行压缩映射得到异常标识信息。异常标识信息可以包括异常堆栈信息、异常日志信息中的全部或部分信息。用于确定异常标识信息的异常日志信息例如可以是异常堆栈信息对应的日志中最后一条日志信息。
根据异常标识信息,在知识库中进行检索。
如果知识库中存在该异常标识信息和处理结果的对应关系,则进行步骤s205。
在步骤s205,将该异常标识信息对应的处理结果反馈给用户。例如将该处理结果发送至车载设备或者用户设备。
如果知识库中不存在该异常标识信息和处理结果的对应关系,则进行步骤s206。
在步骤s206,人工分析。进行人工定位,确定异常标识信息对应的处理结果。人工分析的过程中,可以结合车载系统的结构关系,分析定位出车载系统出现异常的根本原因,确定出现故障的单元,提供具体的解决方案。根据出现故障的单元,结合车载系统的结构关系,可以确定受到影响的一个或多个程序。异常标识信息对应的处理结果可以包括车载系统出现异常的原因、解决方案、确定受到影响的程序等中的一种或多种。
在步骤s207,将人工确定的该异常标识信息以及处理结果的对应关系补充在知识库的异常问题库中,更新知识库。
将人工确定的处理结果发送给用户。可以在步骤s206之后进行步骤s205,将人工确定的处理结果发送给用户设备或车载设备。或者,也可以在步骤s207之后进行步骤s205,由服务端发送处理结果。
通过步骤s201-s207,当车载系统出现异常时,能够自动提供处理结果,以解决车载系统中的问题,解决了发生问题需要维护人员近端定位的问题,对同样的车载系统异常情况不需要人工重复处理,节约时间,提高用户体验。
本申请实施例提供的车载系统异常处理的方法,使用异常监控以及用户触发的方式采集车载系统信息,在服务端结合知识库对异常情况进行处理,确定处理结果。根据维护人员对车载系统出现异常提供的处理结果,构建知识库。对于相同问题,自动检索知识库生成处理结果。
本申请实施例提供的车载系统异常处理的方法,可以应用于多种操作系统,使用灵活;能够自动提供处理结果,减少人工干预;通过更新知识库,不需要人工重复处理,降低人力成本,提高处理效率。
在计算机系统中,通常包括硬件系统、系统软件、支持系统、应用软件四个层次。硬件系统是指构成计算机的物理设备,即由机械、光、电、磁器件构成的具有计算、控制、存储、输入和输出功能的实体部件。系统软件是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统。支持系统也可以称为决策支持系统,是辅助决策者通过数据、模型和知识,以人机交互方式进行半结构化或非结构化决策的计算机应用系统。应用软件(application)是和系统软件相对应的,是用户可以使用的各种程序设计语言,以及用各种程序设计语言编制的应用程序的集合,分为应用软件包和用户程序。应用软件包是利用计算机解决某类问题而设计的程序的集合,供多用户使用。
可以通过执在车载客户端和服务端执行程序,以实现过上述方法。实现本申请实施例的程序可以运行在应用软件层,或计算机系统中的其他层次。
上文结合图2至图4的描述了本申请实施例的方法实施例,下面结合图5至图9,描述本申请实施例的装置实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图5是本申请实施例提供的一种车载系统异常处理的系统的示意图。该系统可以用于执行图2或图3所示的方法。
车载客户端包括处理模块和车载通信模块。车载客户端可以包括车载系统,或者车载客户端与车载系统可以是两个独立的设备。
处理模块可以用于进程监控、信息采集、信息脱敏。
进程监控,即监控车载系统的状态,确定是否出现异常。
信息采集,即采集车载系统的信息。例如:异常日志信息,异常堆栈信息等。
信息脱敏,即对采集的信息进行脱敏操作,保护用户隐私。
车载通信模块用于与服务端进行通信以及数据传输。
服务端包括存储模块、处理模块、通信模块。
存储模块用于知识库。知识库可以包括第一映射关系,第一映射关系记录有多个异常标识信息与多个处理结果的对应关系。知识库可以包括第二映射关系,第二映射关系包括指示多个故障单元与多个程序之间的关联关系。处理结果包括异常处理建议和/或异常原因,异常原因用于指示故障单元。
处理模块用于信息处理。处理模块可以根据接收到的车载客户端发送的异常标识信息,结合知识库进行处理,确定处理结果。在处理结果包括异常原因的情况下,处理模块可以根据异常原因,确定受故障单元影响的程序。
通信模块用于:主要负责把解决方案通知到用户。例如:通过app、短信、邮件等方式。
服务端的通信模块用于与车载客户端、用户设备进行通信以及数据传输。服务端的通信模块可以接收车载客户端发送的异常标识信息。服务端的通信模块可以向车载客户端发送指示信息,指示信息用于指示所述车载客户端获取第一程序的程序标识。服务端的通信模块可以向用户设备发送处理结果和/或影响信息,影响信息用于指示受故障单元影响的程序。
可以通过邮件、短信、或者应用程序(application,app)消息等方式发送至用户设备。
图6是本申请实施例提供的一种车载系统异常处理装置的示意性结构图。装置500包括获取模块501,收发模块502。
获取模块501,用于获取第一程序的程序标识,所述第一程序是运行异常的程序;
收发模块502,用于向服务端发送处理请求,所述处理请求用于指示所述服务端根据第一映射关系确定与所述第一异常标识信息对应的第一处理结果,所述处理请求携带第一异常标识信息,所述第一异常标识信息包括所述第一程序的程序标识,所述第一映射关系记录有多个异常标识信息与多个处理结果的对应关系,每个异常标识信息包括一个程序标识。
可选地,所述第一程序的代码中包括所述第一程序的程序标识。
可选地,获取模块501用于,获取异常堆栈信息,所述异常堆栈信息包括所述第一程序的程序标识。
可选地,当所述第一程序运行时,所述第一程序的程序标识被写入被分配所述第一程序的第一内存空间中,所述第一程序的代码中包括所述第一程序的程序标识,所述异常堆栈信息是根据所述第一内存空间确定的。
可选地,每个异常标识信息还包括以下参数中的至少一个:异常日志信息、异常状态信息、资源占用信息,所述异常日志信息是根据所述第一程序对应的日志得到的,所述异常状态信息用于指示以下异常状态中的至少一种:所述车载系统内存溢出、所述车载系统内存地址错误、车载系统程序异常,所述资源占用信息用于指示所述车载系统的资源占用情况。
可选地,收发模块502还用于,接收所述服务端发送的处理响应,所述处理响应包括所述第一处理结果。
可选地,所述第一处理结果包括第一异常原因,所述第一异常原因用于指示所述车载系统中的第一故障单元,
收发模块502还用于,接收所述服务端发送的处理响应,所述处理响应包括影响信息,所述影响信息用于指示第二程序,所述第二程序是第二映射关系指示的与所述第一故障单元关联的程序,所述第二映射关系包括指示多个故障单元与多个程序之间的关联关系。
可选地,所述装置还包括确定模块,用于确定满足异常条件,以确定所述车载系统出现异常,所述异常条件包括:
所述车载客户端接收到指示信息,所述指示信息用于指示所述车载客户端获取第一程序的程序标识;和/或,
检测到所述车载系统出现以下异常状态中的至少一种:所述车载系统内存溢出、所述车载系统内存地址错误、车载系统程序异常。
图7是本申请实施例提供的一种车载系统异常处理装置的示意性结构图。装置600包括收发模块601,确定模块602。
收发模块601,用于接收车载客户端发送的处理请求,所述处理请求携带第一异常标识信息,所述第一异常标识信息包括第一程序的程序标识,所述第一程序是运行异常的程序;
确定模块602,用于根据第一映射关系确定与所述第一异常标识信息对应的第一处理结果,所述第一映射关系记录有多个异常标识信息与多个处理结果的对应关系,每个异常标识信息包括一个程序标识。
可选地,所述第一程序的代码中包括所述第一程序的程序标识。
可选地,每个异常标识信息还包括以下参数中的至少一个:异常日志信息、异常状态信息、资源占用信息,所述异常日志信息是根据所述第一程序对应的日志得到的,所述异常状态信息用于指示以下异常状态中的至少一种:所述车载系统内存溢出、所述车载系统内存地址错误、车载系统程序异常,所述资源占用信息用于指示所述车载系统的资源占用情况。
可选地,收发模块601还用于,向所述车载客户端或与所述车载客户端对应的用户设备发送处理响应,所述处理响应包括所述第一处理结果。
可选地,所述第一处理结果包括第一异常原因,所述第一异常原因用于指示所述车载系统中的第一故障单元,
确定模块602还用于,根据第二映射关系确定与所述第一故障单元关联的第二程序,所述第二映射关系包括指示多个故障单元与多个程序之间的关联关系。
可选地,收发模块601还用于,向所述车载客户端或与所述车载客户端对应的用户设备发送处理响应,所述处理响应包括影响信息,所述影响信息用于指示所述第二程序。
可选地,收发模块601还用于,向所述车载客户端发送指示信息,所述指示信息用于指示所述车载客户端向所述服务端发送所述处理请求。
图8是本申请实施例提供的一种车载系统异常处理装置的示意性结构图。装置700包括处理器701,通信接口702。
处理器701,用于获取第一程序的程序标识,所述第一程序是运行异常的程序;
通信接口702,用于向服务端发送处理请求,所述处理请求用于指示所述服务端根据第一映射关系确定与所述第一异常标识信息对应的第一处理结果,所述处理请求携带第一异常标识信息,所述第一异常标识信息包括所述第一程序的程序标识,所述第一映射关系记录有多个异常标识信息与多个处理结果的对应关系,每个异常标识信息包括一个程序标识。
可选地,所述第一程序的代码中包括所述第一程序的程序标识。
可选地,处理器701用于,获取异常堆栈信息,所述异常堆栈信息包括所述第一程序的程序标识。
可选地,当所述第一程序运行时,所述第一程序的程序标识被写入被分配所述第一程序的第一内存空间中,所述第一程序的代码中包括所述第一程序的程序标识,所述异常堆栈信息是根据所述第一内存空间确定的。
可选地,每个异常标识信息还包括以下参数中的至少一个:异常日志信息、异常状态信息、资源占用信息,所述异常日志信息是根据所述第一程序对应的日志得到的,所述异常状态信息用于指示以下异常状态中的至少一种:所述车载系统内存溢出、所述车载系统内存地址错误、车载系统程序异常,所述资源占用信息用于指示所述车载系统的资源占用情况。
可选地,通信接口702还用于,接收所述服务端发送的处理响应,所述处理响应包括所述第一处理结果。
可选地,所述第一处理结果包括第一异常原因,所述第一异常原因用于指示所述车载系统中的第一故障单元,
通信接口702还用于,接收所述服务端发送的处理响应,所述处理响应包括影响信息,所述影响信息用于指示第二程序,所述第二程序是第二映射关系指示的与所述第一故障单元关联的程序,所述第二映射关系包括指示多个故障单元与多个程序之间的关联关系。
可选地,处理器701还用于,确定满足异常条件,以确定所述车载系统出现异常,所述异常条件包括:
所述车载客户端接收到指示信息,所述指示信息用于指示所述车载客户端获取第一程序的程序标识;和/或,
检测到所述车载系统出现以下异常状态中的至少一种:所述车载系统内存溢出、所述车载系统内存地址错误、车载系统程序异常。
图9是本申请实施例提供的一种车载系统异常处理装置的示意性结构图。装置800包括处理器801,通信接口802。
通信接口802,用于接收车载客户端发送的处理请求,所述处理请求携带第一异常标识信息,所述第一异常标识信息包括第一程序的程序标识,所述第一程序是运行异常的程序;
处理器801,用于根据第一映射关系确定与所述第一异常标识信息对应的第一处理结果,所述第一映射关系记录有多个异常标识信息与多个处理结果的对应关系,每个异常标识信息包括一个程序标识。
可选地,所述第一程序的代码中包括所述第一程序的程序标识。
可选地,每个异常标识信息还包括以下参数中的至少一个:异常日志信息、异常状态信息、资源占用信息,所述异常日志信息是根据所述第一程序对应的日志得到的,所述异常状态信息用于指示以下异常状态中的至少一种:所述车载系统内存溢出、所述车载系统内存地址错误、车载系统程序异常,所述资源占用信息用于指示所述车载系统的资源占用情况。
可选地,通信接口802还用于,向所述车载客户端或与所述车载客户端对应的用户设备发送处理响应,所述处理响应包括所述第一处理结果。
可选地,所述第一处理结果包括第一异常原因,所述第一异常原因用于指示所述车载系统中的第一故障单元,
处理器801还用于,根据第二映射关系确定与所述第一故障单元关联的第二程序,所述第二映射关系包括指示多个故障单元与多个程序之间的关联关系。
可选地,通信接口802还用于,向所述车载客户端或与所述车载客户端对应的用户设备发送处理响应,所述处理响应包括影响信息,所述影响信息用于指示所述第二程序。
可选地,通信接口802还用于,向所述车载客户端发送指示信息,所述指示信息用于指示所述车载客户端向所述服务端发送所述处理请求。
本申请实施例还提供一种车载系统异常处理系统,包括上文所述的车载客户端和服务端。
本申请实施例还提供一种计算机程序存储介质,其特征在于,所述计算机程序存储介质具有程序指令,当所述程序指令被直接或者间接执行时,使得前文中的方法得以实现。
本申请实施例还提供一种芯片系统,其特征在于,所述芯片系统包括至少一个处理器,当程序指令在所述至少一个处理器中执行时,使得前文中的方法得以实现。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示单独存在a、同时存在a和b、单独存在b的情况。其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”及其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。例如,a,b和c中的至少一项可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
1.一种车载系统异常处理的方法,其特征在于,所述方法包括:
车载客户端获取第一程序的程序标识,所述第一程序是运行异常的程序;
所述车载客户端向服务端发送处理请求,所述处理请求携带第一异常标识信息,所述处理请求用于指示所述服务端根据第一映射关系确定与所述第一异常标识信息对应的第一处理结果,所述第一异常标识信息包括所述第一程序的程序标识,所述第一映射关系记录有多个异常标识信息与多个处理结果的对应关系,每个异常标识信息包括一个程序标识。
2.根据权利要求1所述的方法,其特征在于,所述第一程序的代码中包括所述第一程序的程序标识。
3.根据权利要求1或2所述的方法,其特征在于,车载客户端获取第一程序的程序标识,包括:
所述车载客户端获取异常堆栈信息,所述异常堆栈信息包括所述第一程序的程序标识。
4.根据权利要求3所述的方法,其特征在于,当所述第一程序运行时,所述第一程序的程序标识被写入被分配所述第一程序的第一内存空间中,所述第一程序的代码中包括所述第一程序的程序标识,所述异常堆栈信息是根据所述第一内存空间确定的。
5.根据权利要求1至4中任一项所述的方法,其特征在于,每个异常标识信息还包括以下参数中的至少一个:异常日志信息、异常状态信息、资源占用信息,所述异常日志信息是根据所述第一程序对应的日志得到的,所述异常状态信息用于指示以下异常状态中的至少一种:所述车载系统内存溢出、所述车载系统内存地址错误、车载系统程序异常,所述资源占用信息用于指示所述车载系统的资源占用情况。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:
所述车载客户端接收所述服务端发送的处理响应,所述处理响应包括所述第一处理结果。
7.根据权利要求1至6中任一项所述的方法,其特征在于,
所述第一处理结果包括第一异常原因,所述第一异常原因用于指示所述车载系统中的第一故障单元,
所述方法还包括:所述车载客户端接收所述服务端发送的处理响应,所述处理响应包括影响信息,所述影响信息用于指示第二程序,所述第二程序是第二映射关系指示的与所述第一故障单元关联的程序,所述第二映射关系包括指示多个故障单元与多个程序之间的关联关系。
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述方法还包括:
所述车载客户端确定满足异常条件,以确定所述车载系统出现异常,所述异常条件包括:
所述车载客户端接收到指示信息,所述指示信息用于指示所述车载客户端获取第一程序的程序标识;和/或,
检测到所述车载系统出现以下异常状态中的至少一种:所述车载系统内存溢出、所述车载系统内存地址错误、车载系统程序异常。
9.一种车载系统异常处理的方法,其特征在于,所述方法包括:
服务端接收车载客户端发送的处理请求,所述处理请求携带第一异常标识信息,所述第一异常标识信息包括第一程序的程序标识,所述第一程序是运行异常的程序;
所述服务端根据第一映射关系确定与所述第一异常标识信息对应的第一处理结果,所述第一映射关系记录有多个异常标识信息与多个处理结果的对应关系,每个异常标识信息包括一个程序标识。
10.根据权利要求9所述的方法,其特征在于,所述第一程序的代码中包括所述第一程序的程序标识。
11.根据权利要求9或10所述的方法,其特征在于,每个异常标识信息还包括以下参数中的至少一个:异常日志信息、异常状态信息、资源占用信息,所述异常日志信息是根据所述第一程序对应的日志得到的,所述异常状态信息用于指示以下异常状态中的至少一种:所述车载系统内存溢出、所述车载系统内存地址错误、车载系统程序异常,所述资源占用信息用于指示所述车载系统的资源占用情况。
12.根据权利要求9至11中任一项所述的方法,其特征在于,所述方法还包括:
所述服务端向所述车载客户端或与所述车载客户端对应的用户设备发送处理响应,所述处理响应包括所述第一处理结果。
13.根据权利要求9至12中任一项所述的方法,其特征在于,所述第一处理结果包括第一异常原因,所述第一异常原因用于指示所述车载系统中的第一故障单元,
所述方法还包括:
所述服务端根据第二映射关系确定与所述第一故障单元关联的第二程序,所述第二映射关系包括指示多个故障单元与多个程序之间的关联关系。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
所述服务端向所述车载客户端或与所述车载客户端对应的用户设备发送处理响应,所述处理响应包括影响信息,所述影响信息用于指示所述第二程序。
15.根据权利要求9-14中任一项所述的方法,其特征在于,所述方法还包括:
所述服务端向所述车载客户端发送指示信息,所述指示信息用于指示所述车载客户端向所述服务端发送所述处理请求。
16.一种车载系统异常处理装置,其特征在于,包括:
获取模块,用于获取第一程序的程序标识,所述第一程序是运行异常的程序;
收发模块,用于向服务端发送处理请求,所述处理请求携带第一异常标识信息,所述处理请求用于指示所述服务端根据第一映射关系确定与所述第一异常标识信息对应的第一处理结果,所述第一异常标识信息包括所述第一程序的程序标识,所述第一映射关系记录有多个异常标识信息与多个处理结果的对应关系,每个异常标识信息包括一个程序标识。
17.根据权利要求16所述的装置,其特征在于,所述第一程序的代码中包括所述第一程序的程序标识。
18.根据权利要求16或17所述的装置,其特征在于,
所述获取模块用于,获取异常堆栈信息,所述异常堆栈信息包括所述第一程序的程序标识。
19.根据权利要求18所述的装置,其特征在于,当所述第一程序运行时,所述第一程序的程序标识被写入被分配所述第一程序的第一内存空间中,所述第一程序的代码中包括所述第一程序的程序标识,所述异常堆栈信息是根据所述第一内存空间确定的。
20.根据权利要求16至19中任一项所述的装置,其特征在于,每个异常标识信息还包括以下参数中的至少一个:异常日志信息、异常状态信息、资源占用信息,所述异常日志信息是根据所述第一程序对应的日志得到的,所述异常状态信息用于指示以下异常状态中的至少一种:所述车载系统内存溢出、所述车载系统内存地址错误、车载系统程序异常,所述资源占用信息用于指示所述车载系统的资源占用情况。
21.根据权利要求16至20中任一项所述的装置,其特征在于,
所述收发模块还用于,接收所述服务端发送的处理响应,所述处理响应包括所述第一处理结果。
22.根据权利要求16至21中任一项所述的装置,其特征在于,
所述第一处理结果包括第一异常原因,所述第一异常原因用于指示所述车载系统中的第一故障单元,
所述收发模块还用于,接收所述服务端发送的处理响应,所述处理响应包括影响信息,所述影响信息用于指示第二程序,所述第二程序是第二映射关系指示的与所述第一故障单元关联的程序,所述第二映射关系包括指示多个故障单元与多个程序之间的关联关系。
23.根据权利要求16-22中任一项所述的装置,其特征在于,
所述装置还包括确定模块,用于确定满足异常条件,以确定所述车载系统出现异常,所述异常条件包括:
所述车载客户端接收到指示信息,所述指示信息用于指示所述车载客户端获取第一程序的程序标识;和/或,
检测到所述车载系统出现以下异常状态中的至少一种:所述车载系统内存溢出、所述车载系统内存地址错误。
24.一种车载系统异常处理装置,其特征在于,包括:
收发模块,用于接收车载客户端发送的处理请求,所述处理请求携带第一异常标识信息,所述第一异常标识信息包括第一程序的程序标识,所述第一程序是运行异常的程序;
确定模块,用于根据第一映射关系确定与所述第一异常标识信息对应的第一处理结果,所述第一映射关系记录有多个异常标识信息与多个处理结果的对应关系,每个异常标识信息包括一个程序标识。
25.根据权利要求24所述的装置,其特征在于,所述第一程序的代码中包括所述第一程序的程序标识。
26.根据权利要求24或25所述的装置,其特征在于,每个异常标识信息还包括以下参数中的至少一个:异常日志信息、异常状态信息、资源占用信息,所述异常日志信息是根据所述第一程序对应的日志得到的,所述异常状态信息用于指示以下异常状态中的至少一种:所述车载系统内存溢出、所述车载系统内存地址错误、车载系统程序异常,所述资源占用信息用于指示所述车载系统的资源占用情况。
27.根据权利要求24至26中任一项所述的装置,其特征在于,
所述收发模块还用于,向所述车载客户端或与所述车载客户端对应的用户设备发送处理响应,所述处理响应包括所述第一处理结果。
28.根据权利要求24至27中任一项所述的装置,其特征在于,所述第一处理结果包括第一异常原因,所述第一异常原因用于指示所述车载系统中的第一故障单元,
所述确定模块还用于,根据第二映射关系确定与所述第一故障单元关联的第二程序,所述第二映射关系包括指示多个故障单元与多个程序之间的关联关系。
29.根据权利要求28所述的装置,其特征在于,
所述收发模块还用于,向所述车载客户端或与所述车载客户端对应的用户设备发送处理响应,所述处理响应包括影响信息,所述影响信息用于指示所述第二程序。
30.根据权利要求24至29中任一项所述的装置,其特征在于,
所述收发模块还用于,向所述车载客户端发送指示信息,所述指示信息用于指示所述车载客户端向所述服务端发送所述处理请求。
31.一种计算机存储介质,其特征在于,当所述计算机指令在电子设备上运行时,所述电子设备执行权利要求1-15中任一项所述的方法。
32.一种芯片系统,其特征在于,包括至少一个处理器,当程序指令在所述至少一个处理器中执行时,权利要求1-15中任一项所述的方法被执行。
技术总结