CN118916202A - 一种针对程序跑飞的数据处理方法、装置、设备和介质 - Google Patents
一种针对程序跑飞的数据处理方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN118916202A CN118916202A CN202411034182.4A CN202411034182A CN118916202A CN 118916202 A CN118916202 A CN 118916202A CN 202411034182 A CN202411034182 A CN 202411034182A CN 118916202 A CN118916202 A CN 118916202A
- Authority
- CN
- China
- Prior art keywords
- state information
- program
- error
- detected
- preset
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种针对程序跑飞的数据处理方法、装置、设备和介质;该方法包括:在检测到目标程序触发预设的跑飞事件时,中断目标程序的代码运行;获取目标程序的当前代码运行状态、寄存器内部状态信息和程序执行状态信息;根据当前代码运行状态、寄存器内部状态信息和程序执行状态信息,生成异常状态信息,并保存异常状态信息。通过本发明实施例,可以保留问题现场的相关信息,从而准确、高效地分析和解决程序跑飞问题。
Description
技术领域
本发明涉及异常检测的技术领域,具体涉及一种针对程序跑飞的数据处理方法、一种针对程序跑飞的数据处理装置、一种电子设备和一种计算机可读存储介质。
背景技术
在现代的智能座舱系统中,MCU(Microcontroller Unit,微控制器单元)芯片扮演着至关重要的角色,负责控制和管理各种车内功能,如车载娱乐、导航系统、自动驾驶等都离不开MCU,当MCU芯片的程序出现跑飞问题时,可能会导致系统故障甚至安全风险。
在MCU芯片的实际应用过程中,程序跑飞是一个较为常见的问题。造成程序跑飞的原因错综复杂,可能是硬件故障、电磁干扰,也可能是软件错误等诸多因素。程序跑飞问题一旦发生,会给程序员带来很多困扰,主要包括以下几点:
1.难以重现问题:
跑飞问题可能只在特定的硬件环境、操作系统版本或用户输入条件下出现,这使得在开发环境中重现问题变得困难;问题可能是间歇性的,只在某些罕见的情况下发生,增加了重现问题的难度;可能需要模拟真实的用户场景、网络条件或外部设备的交互,这需要更多的时间和资源。
2.错误的位置不明确:
跑飞问题可能是由于代码中的任何一个部分引起的,从底层驱动程序到高层业务逻辑都有可能;错误可能是由于多个因素相互作用导致的,需要逐步排查各个环节;问题可能隐藏在复杂的系统调用、异步操作或多线程环境中,增加了定位错误的难度。
3.难以调试:
跑飞问题可能导致程序崩溃或产生不可预测的行为,调试工具可能无法提供足够的信息来确定问题的根源,调试过程中可能需要多次重新运行程序,并且需要在不同的条件下进行测试,这会消耗大量的时间和精力;定位和解决跑飞问题通常需要深入理解系统架构、代码逻辑和底层机制,可能需要阅读大量的文档、研究相关的技术知识和搜索类似问题的解决方案,调试过程可能需要反复修改代码、进行测试和验证,直到问题得到解决。
发明内容
鉴于上述问题,提出了以便提供克服上述问题或者至少部分地解决上述问题的一种针对程序跑飞的数据处理方法、一种针对程序跑飞的数据处理装置、一种电子设备和一种计算机可读存储介质,包括:
一种针对程序跑飞的数据处理方法,所述方法包括:
在检测到目标程序触发预设的跑飞事件时,中断所述目标程序的代码运行;
获取所述目标程序的当前代码运行状态、寄存器内部状态信息和程序执行状态信息;
根据所述当前代码运行状态、所述寄存器内部状态信息和所述程序执行状态信息,生成异常状态信息,并保存所述异常状态信息。
可选地,所述保存所述异常状态信息,包括:
将所述异常状态信息保存至硬件存储单元中。
可选地,所述保存所述异常状态信息,包括:
将所述异常状态信息上传至预设的远程设备进行存储。
可选地,所述将所述异常状态信息上传至预设的远程设备进行存储,包括:
将所述异常状态信息上传至预设的远程设备,并存储在所述远程设备;
和/或,将所述异常状态信息上传至预设的远程设备,并由所述远程设备传入预设的日志系统进行存储。
可选地,所述方法还包括:
在检测到内存访问违规时,判定触发所述跑飞事件;
和/或,在检测到总线错误时,判定触发所述跑飞事件;
和/或,在检测到执行错误时,判定触发所述跑飞事件;
和/或,在检测到数学运算错误时,判定触发所述跑飞事件;
和/或,在检测到堆栈错误时,判定触发所述跑飞事件;
和/或,在检测到电源管理错误时,判定触发所述跑飞事件;
和/或,在检测到时钟管理错误时,判定触发所述跑飞事件;
和/或,在检测到外设错误时,判定触发所述跑飞事件。
可选地,所述中断所述目标程序的代码运行,包括:
中断驱动,以中断所述目标程序的代码运行。
可选地,所述获取所述目标程序的当前代码运行状态、寄存器内部状态信息和程序执行状态信息,包括:
调用预设的中断处理函数,收集并记录所述目标程序的当前代码运行状态、所述寄存器内部状态信息,以及所述程序执行状态信息。
可选地,所述方法还包括:
增加软件埋点,所述软件埋点用于检测所述目标程序是否触发预设的跑飞事件。
可选地,所述方法还包括:
根据所述异常状态信息,进行异常分析。
本发明还提供了一种针对程序跑飞的数据处理装置,所述装置包括:
中断模块,用于在检测到目标程序触发预设的跑飞事件时,中断所述目标程序的代码运行;
获取模块,用于获取所述目标程序的当前代码运行状态、寄存器内部状态信息和程序执行状态信息;
存储模块,用于根据所述当前代码运行状态、所述寄存器内部状态信息和所述程序执行状态信息,生成异常状态信息,并保存所述异常状态信息。
可选地,所述存储模块,用于将所述异常状态信息保存至硬件存储单元中。
可选地,所述存储模块,用于将所述异常状态信息上传至预设的远程设备进行存储。
可选地,所述存储模块,用于将所述异常状态信息上传至预设的远程设备,并存储在所述远程设备;和/或,将所述异常状态信息上传至预设的远程设备,并由所述远程设备传入预设的日志系统进行存储。
可选地,所述装置还包括:
判定模块,用于在检测到内存访问违规时,判定触发所述跑飞事件;和/或,在检测到总线错误时,判定触发所述跑飞事件;和/或,在检测到执行错误时,判定触发所述跑飞事件;和/或,在检测到数学运算错误时,判定触发所述跑飞事件;和/或,在检测到堆栈错误时,判定触发所述跑飞事件;和/或,在检测到电源管理错误时,判定触发所述跑飞事件;和/或,在检测到时钟管理错误时,判定触发所述跑飞事件;和/或,在检测到外设错误时,判定触发所述跑飞事件。
可选地,所述中断模块,用于中断驱动,以中断所述目标程序的代码运行。
可选地,所述获取模块,用于调用预设的中断处理函数,收集并记录所述目标程序的当前代码运行状态、所述寄存器内部状态信息,以及所述程序执行状态信息。
可选地,所述装置还包括:
埋点模块,用于增加软件埋点,所述软件埋点用于检测所述目标程序是否触发预设的跑飞事件。
可选地,所述装置还包括:
分析模块,用于根据所述异常状态信息,进行异常分析。
本发明还提供了一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上的针对程序跑飞的数据处理方法。
本发明还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上的针对程序跑飞的数据处理方法。
本发明的有益效果:
本发明中,在检测到目标程序触发预设的跑飞事件时,中断目标程序的代码运行;获取目标程序的当前代码运行状态、寄存器内部状态信息和程序执行状态信息;根据当前代码运行状态、寄存器内部状态信息和程序执行状态信息,生成异常状态信息,并保存异常状态信息。通过本发明实施例,可以保留问题现场的相关信息,从而准确、高效地分析和解决程序跑飞问题。
附图说明
图1是本发明实施例的一种针对程序跑飞的数据处理方法的步骤流程图;
图2是本发明实施例的另一种针对程序跑飞的数据处理方法的步骤流程图;
图3是本发明实施例的又一种针对程序跑飞的数据处理方法的步骤流程图;
图4是本发明实施例的一种确定异常的步骤流程图;
图5是本发明实施例的一种存储异常状态信息的步骤流程图;
图6是本发明实施例的另一种存储异常状态信息的步骤流程图;
图7是本发明实施例的又一种存储异常状态信息的步骤流程图;
图8是本发明实施例的再一种存储异常状态信息的步骤流程图;
图9是本发明实施例的还一种存储异常状态信息的步骤流程图;
图10是本发明实施例的一种场景示意图;
图11是本发明实施例的一种针对程序跑飞的数据处理装置的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1,示出了本发明实施例的一种针对程序跑飞的数据处理方法的步骤流程图,可以包括如下步骤:
步骤101、在检测到目标程序触发预设的跑飞事件时,中断目标程序的代码运行。
在实际应用中,当监测到一目标程序触发预设的跑飞事件的时候,为了对现场信息进行保存,可以先中断该目标程序的代码运行。
示例性的,可以在调试车辆或者台架的过程,检测目标程序是否触发预设的跑飞事件,本发明实施例对此不作限制。
步骤102、获取目标程序的当前代码运行状态、寄存器内部状态信息和程序执行状态信息。
在中断目标程序的代码运行后,可以收集现场信息;具体的,可以收集并记录获取寄存器内部状态信息、程序执行状态信息,以及目标程序的当前代码运行状态。
其中,当前代码运行状态可以包括当前的指令地址、执行到哪一步的具体信息,以及即将执行的下一步操作。
寄存器内部状态信息可以包括各类寄存器的内部状态,例如通用目的寄存器(如R0到R12)的值,这些通常用于存放变量和中间计算结果。同时,也包括了程序状态寄存器(如xPSR),这提供了CPU(Central Processing Unit,中央处理单元)状态标志和执行状态信息。
程序执行状态信息可以包括堆栈指针的当前值,它指向了程序运行时栈顶的内存位置。堆栈中可能包含了局部变量、寄存器的备份值以及函数调用的返回地址等关键信息。
步骤103、根据当前代码运行状态、寄存器内部状态信息和程序执行状态信息,生成异常状态信息,并保存异常状态信息。
在得到当前代码运行状态、寄存器内部状态信息和程序执行状态信息之后,可以根据这些信息生成异常状态信息,并将该异常状态信息进行保存,以便保存现场信息,从而在异常分析的事后可以成功复现现场情况,进而有针对性地进行异常分析。
在一些可行的实施例中,异常状态信息还可以包括但不限于电压、电流、电源状态,引脚状态等信息,本发明实施例对此不作限制。
本发明实施例中,在检测到目标程序触发预设的跑飞事件时,中断目标程序的代码运行;获取目标程序的当前代码运行状态、寄存器内部状态信息和程序执行状态信息;根据当前代码运行状态、寄存器内部状态信息和程序执行状态信息,生成异常状态信息,并保存异常状态信息。通过本发明实施例,可以保留问题现场的相关信息,从而准确、高效地分析和解决程序跑飞问题。
参照图2,示出了本发明实施例的另一种针对程序跑飞的数据处理方法的步骤流程图,可以包括如下步骤:
步骤201、在检测到目标程序触发预设的跑飞事件时,中断驱动,以中断目标程序的代码运行。
在实际应用中,当监测到一目标程序触发预设的跑飞事件的时候,为了对现场信息进行保存,可以先中断驱动,以中断目标程序的代码运行。中断驱动,即意味着处理器会立即中断目前的任务(即目标程序),并跳转到异常处理例程来响应跑飞事件。
在本发明一实施例中,上述方法还可以包括如下步骤:
在检测到内存访问违规时,判定触发跑飞事件;和/或,在检测到总线错误时,判定触发跑飞事件;和/或,在检测到执行错误时,判定触发跑飞事件;和/或,在检测到数学运算错误时,判定触发跑飞事件;和/或,在检测到堆栈错误时,判定触发跑飞事件;和/或,在检测到电源管理错误时,判定触发跑飞事件;和/或,在检测到时钟管理错误时,判定触发跑飞事件;和/或,在检测到外设错误时,判定触发跑飞事件。
在一些可行的实施例中,当监测到内存访问违规的时候,可以判定目标程序触发预设的跑飞事件;其中,内存访问违规可以指:尝试访问未定义或保护的内存区域、访问违反对齐要求的内存地址,即非对齐访问、试图执行未授权的代码,如执行从非可执行内存区加载的代码等。
在一些可行的实施例中,当监测到总线错误的时候,也可以判定目标程序触发预设的跑飞事件;其中,总线错误可以指当CPU无法正常完成对外设或内存的读写操作,也可以指数据总线、地址总线或控制总线上出现错误(这可能由硬件故障或外部干扰引起)。
在一些可行的实施例中,当监测到执行错误的时候,也可以判定目标程序触发预设的跑飞事件;其中,执行错误可以指无效或未定义的指令,或者尝试执行特权操作而没有足够权限。
在一些可行的实施例中,当监测到数学运算错误的时候,也可以判定目标程序触发预设的跑飞事件;其中,数学运算错误可以指浮点运算异常(如除以零或溢出),也可以指执行错误的类型转换或非法的位操作。
在一些可行的实施例中,当监测到堆栈错误的时候,也可以判定目标程序触发预设的跑飞事件;其中,堆栈错误可以指堆栈溢出或下溢,尝试使用超出分配堆栈边界的内存、不正确的堆栈指针操作,可能导致非法内存访问等。
在一些可行的实施例中,当监测到电源管理错误的时候,也可以判定目标程序触发预设的跑飞事件;其中,电源管理错误可以指电压不稳定导致系统无法保持稳定运行。
在一些可行的实施例中,当监测到时钟管理错误的时候,也可以判定目标程序触发预设的跑飞事件;其中,时钟管理错误可以指时钟配置错误导致系统无法保持稳定运行。
在一些可行的实施例中,当监测到外设错误的时候,也可以判定目标程序触发预设的跑飞事件;其中,外设错误可以指配置外设时参数错误或使用外设时的逻辑错误,也可以指外设返回的异常状态或中断没有得到正确处理,本发明实施例对此不作限制。
步骤202、调用预设的中断处理函数,收集并记录目标程序的当前代码运行状态、寄存器内部状态信息,以及程序执行状态信息。
在中断目标程序的代码运行后,可以收集现场信息;具体的,可以调用预设的中断处理函数来收集并记录获取目标程序的当前代码运行状态、寄存器内部状态信息和程序执行状态信息。
步骤203、根据当前代码运行状态、寄存器内部状态信息和程序执行状态信息,生成异常状态信息。
在得到当前代码运行状态、寄存器内部状态信息和程序执行状态信息之后,可以根据这些信息生成异常状态信息。
步骤204、将异常状态信息保存至硬件存储单元中。
在得到异常状态信息后,可以将异常状态信息存储在硬件存储单元中进行保存,以避免异常状态信息因为跑飞事件被删除,而导致无现场信息进行异常分析。
在本发明一实施例中,上述方法还可以包括如下步骤:
增加软件埋点,软件埋点用于检测目标程序是否触发预设的跑飞事件。
在一些可行的实施例中,可以增加软件埋点,当系统运行时,软件埋点会监控关键操作和状态变化,以检测目标程序是否触发预设的跑飞事件。当检测到目标程序是否触发预设的跑飞事件,系统立即停止目标程序的代码运行,进入错误处理模式,以保留现场信息
在本发明一实施例中,上述方法还可以包括如下步骤:
根据异常状态信息,进行异常分析。
在一些可行的实施例中,在得到异常状态信息后,可以根据异常状态信息,对目标程序所发生的跑飞事件进行异常分析,以针对性地优化代码,修复导致跑飞的问题,并在代码中加入更多的边界检查和异常处理机制,预防类似问题再次发生。
本发明实施例中,在检测到目标程序触发预设的跑飞事件时,中断驱动,以中断目标程序的代码运行;调用预设的中断处理函数,收集并记录目标程序的当前代码运行状态、寄存器内部状态信息,以及程序执行状态信息;根据当前代码运行状态、寄存器内部状态信息和程序执行状态信息,生成异常状态信息;将异常状态信息保存至硬件存储单元中。通过本发明实施例,通过软硬结合的方式,帮助研发人员收集出现问题的相关信息,从而保留问题现场的相关信息,进而使得研发人员可以准确、高效地分析和解决程序跑飞问题。
参照图3,示出了本发明实施例的又一种针对程序跑飞的数据处理方法的步骤流程图,可以包括如下步骤:
步骤301、在检测到目标程序触发预设的跑飞事件时,中断驱动,以中断目标程序的代码运行。
在实际应用中,当监测到一目标程序触发预设的跑飞事件的时候,为了对现场信息进行保存,可以先中断驱动,以中断目标程序的代码运行。中断驱动,即意味着处理器会立即中断目前的任务(即目标程序),并跳转到异常处理例程来响应跑飞事件。
步骤302、调用预设的中断处理函数,收集并记录目标程序的当前代码运行状态、寄存器内部状态信息,以及程序执行状态信息。
在中断目标程序的代码运行后,可以收集现场信息;具体的,可以调用预设的中断处理函数来收集并记录获取目标程序的当前代码运行状态、寄存器内部状态信息和程序执行状态信息。
步骤303、根据当前代码运行状态、寄存器内部状态信息和程序执行状态信息,生成异常状态信息。
在得到当前代码运行状态、寄存器内部状态信息和程序执行状态信息之后,可以根据这些信息生成异常状态信息。具体地,可以将当前代码运行状态、寄存器内部状态信息和程序执行状态信息组合起来,从而得到异常状态信息。
步骤304、将异常状态信息上传至预设的远程设备进行存储。
在一些可行的实施例中,也可以将异常状态信息上传至预设的远程设备来进行存储。具体地,步骤304可以通过如下子步骤来实现:
子步骤11、将异常状态信息上传至预设的远程设备,并存储在远程设备。
在一些可行的实施例中,可以直接将异常状态信息上传至预设的远程设备,并存储在预设的远程设备中。
子步骤12、将异常状态信息上传至预设的远程设备,并由远程设备传入预设的日志系统进行存储。
在另一些可行的实施例中,也可以先将异常状态信息上传至预设的远程设备,然后由远程设备传入预设的日志系统进行存储。其中,远程设备可以为上位机,本发明实施例对此不作限制。
本发明实施例中,在检测到目标程序触发预设的跑飞事件时,中断驱动,以中断目标程序的代码运行;调用预设的中断处理函数,收集并记录目标程序的当前代码运行状态、寄存器内部状态信息,以及程序执行状态信息;根据当前代码运行状态、寄存器内部状态信息和程序执行状态信息,生成异常状态信息;将异常状态信息上传至预设的远程设备进行存储。通过本发明实施例,通过软硬结合的方式,帮助研发人员收集出现问题的相关信息,从而保留问题现场的相关信息,进而使得研发人员可以准确、高效地分析和解决程序跑飞问题。
以下,结合图4-图11,对上述针对程序跑飞的数据处理方法进行进一步说明:
当MCU内核检测到一个异常时,异常中断会被触发,从而跳转到相应的异常中断处理函数执行,其中HardFault为最常见的错误类型,并且,在没有开启其他异常处理的情况下,默认进入HardFault异常中断处理函数;从软件角度,产生HardFault的可能原因有:
(1)数组越界
(2)野指针
(3)未初始化硬件却开始操作,或无中断服务函数等
(4)任务堆栈溢出等
在ARM(Advanced RISC Machines,高级精简指令集机器)架构的处理器中,与HardFault异常相关的寄存器是异常和故障处理的核心部分。这些寄存器为开发者提供了对故障原因分析的关键信息:
1.1.异常处理寄存器:
程序状态寄存器(xPSR,eXecutable Program Status Register):包括应用程序状态寄存器(APSR,Application Program Status Register)、中断程序状态寄存器(IPSR,Interrupt Program Status Register)和执行程序状态寄存器(EPSR,Execution ProgramStatus Register)。这些寄存器提供了有关程序当前状态的信息,包括是否存在故障(如HardFault)。
控制寄存器(CONTROL):这个寄存器包含控制位,用于切换处理器状态,如从主栈指针(MSP,Main Stack Pointer)切换到进程栈指针(PSP,Process Stack Pointer),或者切换不同的特权级。
1.2.系统控制块(SCB,System Control Block)寄存器:
系统控制块(SCB):ARM处理器包含一个SCB模块,它提供了系统的配置和状态信息。
配置和控制寄存器(SCB->CCR,System Control Block->Configuration andControl Register):提供了配置处理器行为的控制选项,例如堆栈对齐要求和异常处理设置。
1.3.硬件故障相关寄存器:
硬件故障状态寄存器(HFSR,HardFault Status Register):当发生硬件故障时,该寄存器记录故障的原因。例如,当尝试执行一个无效的指令或访问一个错误的内存地址时,会触发一个硬件故障,并在这个寄存器中设置相应的位。
可配置故障状态寄存器(CFSR,Configurable Fault Status Register):它细分为总线故障状态寄存器(BFSR,Bus Fault Status Register)、存储器管理故障状态寄存器(MMFSR,Memory Management Fault Status Register)和使用故障状态寄存器(UFSR,Usage Fault Status Register)。这些寄存器提供了对故障具体原因的更详细描述。
总线故障状态寄存器(BFSR,Bus Fault Status Register):记录了与数据总线操作有关的故障信息,如非法数据访问等。
存储器管理故障状态寄存器(MMFSR):记录了与内存保护单元(MPU,MemoryProtection Unit)设置有关的故障信息,如访问受保护的内存区域。
使用故障状态寄存器(UFSR):记录了由于错误的指令使用导致的故障,例如未对齐的内存访问或非法的指令集使用。
1.4.故障地址寄存器:
故障地址寄存器(FaultAddr):当内存访问故障发生时,该寄存器记录了故障发生时的地址。这对于调试非法内存访问是非常有用的。
1.5.堆栈相关寄存器:
主栈指针(MSP):在使用主栈的情况下,处理器的当前栈顶指针。当异常发生时,处理器自动使用这个指针。
进程栈指针(PSP):在使用进程栈的情况下,处理器的当前栈顶指针。
当HardFault异常发生时,处理器会自动将部分上下文压栈,这些包括程序计数器(PC)、程序状态寄存器(xPSR)等关键信息。
1.6.堆栈帧和自动保存的寄存器:
当异常发生时,处理器会自动将一些关键寄存器的值保存在当前使用的栈上,这些寄存器包括:
通用寄存器(R0-R3):用于存储和传递函数参数。
返回地址寄存器(LR,R14):存储了函数调用的返回地址。
程序计数器(PC,R15):存储了发生异常时的指令地址。
程序状态寄存器(xPSR):包含了处理器的状态标志位。
这些寄存器的值被保存在栈上,以便在异常处理结束后能够恢复到异常发生前的状态,异常处理程序可以通过检查这些值来分析故障发生的上下文。
当MCU芯片软件异常时,可以获取相关的软件异常故障的内存信息(内存信息即包括异常状态信息),并通过媒介最终将故障信息传递至研发人员,可以帮助工程师更快速地定位到异常发生的原因,从而更迅速地解决问题。
示例性的,可以通过工具,包括但不限于串口、日志、CAN总线等通讯手段,帮助研发人员诊断和分析出现问题的相关信息,包括但不限于类型、时间,芯片状态,寄存器状态,函数调用情况等,这些信息能够协助了解问题发生时的系统状态和所处环境,进而更精准地定位和解决问题,最终修正代码缺陷。
在MCU系统运行过程中,Cortex处理器中存在一个名为嵌套向量中断控制器(NVIC,Nested Vectored Interrupt Controller)的中断控制器,它是可编程的且其寄存器经过了存储器映射。
NVIC的地址固定,而且NVIC的编程模型对于所有的Cortex处理器都是一致的。
异常是会改变程序流的事件,当其产生时,处理器会暂停当前正在执行的任务,转而执行一段被称作异常处理的程序。在异常处理执行完后,处理器会继续正常地程序执行。对于ARM架构,中断就是异常的一种,它一般由硬件(如外设和外部输入引脚)产生,有时也可以由软件触发中断的异常处理也被称作中断服务程序(ISR),所有的错误事件默认都会触发HardFault。
Cortex处理器中有几个异常为错误处理异常,处理器检测到错误时,就会触发错误处理异常,检测到的错误包括执行未定义的指令错误,总线错误,对寄存器访问错误等,该机制可使得错误被快速发现,所以软件可针对异常做出相应动作:
2.1.在微控制器(MCU)的运行过程中,处理器可能会遇到各种异常,这些异常会触发异常中断机制,通常是一个HardFault。HardFault是一种捕获严重错误的异常,它是ARM架构处理器的一部分。一旦处理器检测到某些不正常或无法处理的情况,就会触发HardFault。以下是一些常见的场景,它们可能会导致HardFault异常,以下列举一些常见异常:
1)内存访问违规:
尝试访问未定义或保护的内存区域;
访问违反对齐要求的内存地址,即非对齐访问;
试图执行未授权的代码,如执行从非可执行内存区加载的代码;
2)总线错误:
当CPU无法正常完成对外设或内存的读写操作时;
数据总线、地址总线或控制总线上出现错误,可能由硬件故障或外部干扰引起;
3)执行错误:
无效或未定义的指令;
尝试执行特权操作而没有足够权限;
软件尝试进行非法的指令集状态切换;
4)数学运算错误:
浮点运算异常,如除以零或溢出;
执行错误的类型转换或非法的位操作;
5)堆栈错误:
堆栈溢出或下溢,尝试使用超出分配堆栈边界的内存;
不正确的堆栈指针操作,可能导致非法内存访问;
6)电源和时钟管理错误:
电压不稳定或时钟配置错误导致系统无法保持稳定运行;
7)外设错误:
配置外设时参数错误或使用外设时的逻辑错误;
外设返回的异常状态或中断没有得到正确处理;
当MCU在运行过程中处理器检测到异常时,触发响应的异常机制,该异常包括但不限于各类执行错误、总线错误、访问错误等,所有异常默认会触发HardFault,如图4所示。
2.2.当微控制器(MCU)代码运行过程中,遇到异常时,默认触发HardFault;此时,处理器它会迅速触发一个专门的异常处理中断流程。这个过程是中断驱动的,即意味着处理器会立即中断目前的任务,并跳转到异常处理例程来响应这一情况。在这个例程中,处理器会首先检测并收集异常状态信息,这些信息至关重要,因为它们能够提供异常发生时的详细上下文环境。
异常状态信息广泛地覆盖了代码的运行状态,包括了当前的指令地址、执行到哪一步的具体信息,以及即将执行的下一步操作。此外,还有各类寄存器的内部状态,例如通用目的寄存器(如R0到R11)的值,这些通常用于存放变量和中间计算结果。同时,也包括了程序状态寄存器(如xPSR),这提供了CPU状态标志和执行状态信息。
处理器的程序执行状态也是异常状态信息的一部分,包括了堆栈指针(SP)的当前值,它指向了程序运行时栈顶的内存位置。堆栈中可能包含了局部变量、寄存器的备份值以及函数调用的返回地址等关键信息。
在异常处理中,这些都是定位问题和理解程序崩溃原因的关键线索。一旦收集了这些异常状态信息,异常处理程序会立即将它们保存到硬件存储单元中以便于后续的分析和问题解决。硬件存储单元不仅包括EEPROM,还可能包括其它形式的非易失性记忆体,如Flash存储器或特定的RAM区域,它们被用来保存紧急数据。
反之,如果没有发生异常,则持续监控,如图5。
2.3.当微控制器(MCU)代码运行过程中,当检测到异常产生之后,默认触发HardFault;立刻进入异常处理中断,检测异常状态信息,异常发生之后将异常状态信息通过内部通讯协议传入到上层的日志系统,这可以是集成在SOC(System on Chip,系统级芯片)中,也可能是分布式日志系统,用于集中存储、管理和分析来自MCU的异常状态信息。这样通过有效的日志管理和异常处理,开发团队可以远程诊断和分析快速定位和解决问题,减少系统的停机时间,并提高产品的可靠性。反之,如果没有发生异常,则持续监控,如图6。
2.4.当微控制器(MCU)代码运行过程中,当检测到异常产生之后,默认触发HardFault;立刻进入异常处理中断,检测异常后异常处理程序会自动开始收集有关异常状态的详细信息,这些信息通常包括:代码运行状态、寄存器内部状态、程序执行状态、堆栈信息等相关信息,异常状态信息被整理后,异常发生之后将异常状态信息通过通讯协议输出至上位机设备中进行输出,上位机设备包括PC以及专业调试设备,开发人员利用上位机的调试和分析工具,可以对异常状态信息进行深入分析。通过比对代码、查看函数调用栈、检查变量和寄存器的值,开发人员可以确定异常发生的原因,并着手修复代码中的缺陷或强化系统对于特定错误的容错能力。反之,如果没有发生异常,则持续监控,如图7。
2.5.当采集到异常状态信息之后,停止代码的运行,保留现场异常状态信息,代码运行进入暂停状态,保留异常现场的各类信息。通过这种方式,系统能够确保即使在发生异常的情况下,也能够最大限度地保留有助于分析和修复错误的信息。一旦现场信息被成功保存,异常处理程序可以根据预定义的策略来处理异常。保留现场的这一步骤是确保系统可靠性和维护性的关键。它允许开发人员通过分析保存的状态信息,准确地定位问题原因,并采取相应的措施,这对于嵌入式系统的稳定运行和及时的故障响应至关重要。
在微控制器(MCU)的运行过程中,处理器可能会遇到各种异常,如:内存访问违规、总线错误、执行错误、数学运算错误、堆栈错误、电源和时钟管理错误、外设错误等,所有异常默认会触发HardFault;在触发HardFault时,进行现场保留;具体的,可以进行程序暂停、上位机设备输出、硬件存储单元存储、上传至日志系统等,如图8。
2.6.增加软件埋点,当系统运行时,埋点会监控关键操作和状态变化。当检测到异常状态信息(如断言错误、内存泄漏、非法操作等),默认触发HardFault;系统立即停止代码运行,进入错误处理模式,保留现场异常状态信息,代码运行进入暂停状态(即程序暂停),定位到当前出错的线程,并直接定位代码缺陷位置。当检测到异常之后,立刻进入异常处理中断,保留现场的异常状态信息,代码运行进入暂停状态,直接定位到代码缺陷的位置,保留现场,在触发HardFault时,进行现场保留;具体的,可以进行程序暂停、上位机设备输出、硬件存储单元存储、上传至日志系统等,如图9。
如图10所示,在MCU中,设置有NVIC;NVIC可以在其他外设异常,或者处理器内核系统异常时,发出IRQs(Interrupt Request Signals,中断请求信号);基于中断向量表,确定触发HardFault后,可以向SOC上传异常状态信息,以上传至日志系统;也可以通过上位机,进行异常状态信息的输出;还可以将异常状态信息存储在EEPROM或者Flash中。
本方案主要应用于项目的前期研发阶段,旨在帮助工程师在开发过程中保留因代码缺陷问题导致的跑飞(程序崩溃或异常)现场信息。方案分为台架开发阶段和试验车阶段两大部分,分别介绍如何在这两个阶段中有效地监控和分析代码运行情况:
3.1.在台架开发阶段,工程师们可以通过连接上位机来实时监控程序运行状态,这一阶段的目标是及时发现并解决代码缺陷问题,确保程序的稳定性和正确性。
本方案的异常捕获机制,当程序崩溃或跑飞时,自动触发进行异常捕获和现场信息记录,工程师通过堆栈回溯查看异常发生时的堆栈信息,利用调试工具进行堆栈回溯,查看异常发生时的函数调用链,定位导致跑飞的代码位置,分析堆栈中的参数和局部变量,查找异常值或非法操作,通过分析异常现场的内存快照,查找可能导致跑飞的内存读写问题,并使用内存检查工具检测内存泄漏和非法内存访问。
3.2.试验车阶段,该时间段的代码监控主要是通过跑飞之后,上传至安卓日志系统,当发生跑飞时,记录异常发生时的现场信息,包括程序计数器、堆栈指针、寄存器状态、内存快照以及外设状态,设置自动化日志记录机制,确保每次运行监控数据和异常现场信息都被保留到本地日志系统或远程服务器,同时通过上述同样的方式,对现场信息进行处理。根据异常分析结果,针对性地优化代码,修复导致跑飞的问题,并在代码中加入更多的边界检查和异常处理机制,预防类似问题再次发生。
应用实例:
当某个线程在运行过程中发生断言错误,比如某个前提条件不再满足,系统会立刻调用定义的错误处理机制。这种机制会立即记录错误发生的位置,包括文件名、行号和函数名,从而确保错误信息不会丢失,并为后续的调试提供关键参考。一旦断言错误被检测到,系统会触发硬错误中断,这是一种高级中断机制,旨在立即停止系统的正常运行并进入错误处理模式,从而防止错误扩散,保障系统其他部分的稳定性。
在错误中断发生时,系统会进入一个专门的中断处理函数。这个函数的主要作用是记录当前的代码执行状态和所有关键寄存器的值,这些信息对于调试和错误分析至关重要,能够帮助开发人员还原错误发生时的现场情况。为了进一步提高错误分析的精确度,系统会通知出错线程保留当前的现场信息,通过获取当前线程的相关信息并调用相关函数来保存线程上下文。
通过这一系列步骤,系统能够在出现断言错误时迅速进入硬错误中断状态,记录错误信息,通知出错线程保留现场信息,从而提高错误定位和处理的效率。这种机制不仅能快速响应错误,还能为后续的调试和修复提供详尽的参考资料,有效提升系统的稳定性和可靠性。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图11,示出了本发明实施例的一种针对程序跑飞的数据处理装置的结构示意图,可以包括如下模块:
中断模块1101,用于在检测到目标程序触发预设的跑飞事件时,中断目标程序的代码运行;
获取模块1102,用于获取目标程序的当前代码运行状态、寄存器内部状态信息和程序执行状态信息;
存储模块1103,用于根据当前代码运行状态、寄存器内部状态信息和程序执行状态信息,生成异常状态信息,并保存异常状态信息。
在本发明一实施例中,存储模块1103,用于将异常状态信息保存至硬件存储单元中。
在本发明一实施例中,存储模块1103,用于将异常状态信息上传至预设的远程设备进行存储。
在本发明一实施例中,存储模块1103,用于将异常状态信息上传至预设的远程设备,并存储在远程设备;和/或,将异常状态信息上传至预设的远程设备,并由远程设备传入预设的日志系统进行存储。
在本发明一实施例中,装置还包括:
判定模块,用于在检测到内存访问违规时,判定触发跑飞事件;和/或,在检测到总线错误时,判定触发跑飞事件;和/或,在检测到执行错误时,判定触发跑飞事件;和/或,在检测到数学运算错误时,判定触发跑飞事件;和/或,在检测到堆栈错误时,判定触发跑飞事件;和/或,在检测到电源管理错误时,判定触发跑飞事件;和/或,在检测到时钟管理错误时,判定触发跑飞事件;和/或,在检测到外设错误时,判定触发跑飞事件。
在本发明一实施例中,中断模块1101,用于中断驱动,以中断目标程序的代码运行。
在本发明一实施例中,获取模块1102,用于调用预设的中断处理函数,收集并记录目标程序的当前代码运行状态、寄存器内部状态信息,以及程序执行状态信息。
在本发明一实施例中,装置还包括:
埋点模块,用于增加软件埋点,软件埋点用于检测目标程序是否触发预设的跑飞事件。
在本发明一实施例中,装置还包括:
分析模块,用于根据异常状态信息,进行异常分析。
本发明实施例中,在检测到目标程序触发预设的跑飞事件时,中断目标程序的代码运行;获取目标程序的当前代码运行状态、寄存器内部状态信息和程序执行状态信息;根据当前代码运行状态、寄存器内部状态信息和程序执行状态信息,生成异常状态信息,并保存异常状态信息。通过本发明实施例,可以保留问题现场的相关信息,从而准确、高效地分析和解决程序跑飞问题。
本发明实施例还提供了一种电子设备,可以包括处理器、存储器及存储在存储器上并能够在处理器上运行的计算机程序,计算机程序被处理器执行时实现如上的针对程序跑飞的数据处理方法。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如上的针对程序跑飞的数据处理方法。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对所提供的一种针对程序跑飞的数据处理方法、一种针对程序跑飞的数据处理装置、一种电子设备和一种计算机可读存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种针对程序跑飞的数据处理方法,其特征在于,所述方法包括:
在检测到目标程序触发预设的跑飞事件时,中断所述目标程序的代码运行;
获取所述目标程序的当前代码运行状态、寄存器内部状态信息和程序执行状态信息;
根据所述当前代码运行状态、所述寄存器内部状态信息和所述程序执行状态信息,生成异常状态信息,并保存所述异常状态信息。
2.根据权利要求1所述的方法,其特征在于,所述保存所述异常状态信息,包括:
将所述异常状态信息保存至硬件存储单元中。
3.根据权利要求1所述的方法,其特征在于,所述保存所述异常状态信息,包括:
将所述异常状态信息上传至预设的远程设备进行存储。
4.根据权利要求3所述的方法,其特征在于,所述将所述异常状态信息上传至预设的远程设备进行存储,包括:
将所述异常状态信息上传至预设的远程设备,并存储在所述远程设备;
和/或,将所述异常状态信息上传至预设的远程设备,并由所述远程设备传入预设的日志系统进行存储。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在检测到内存访问违规时,判定触发所述跑飞事件;
和/或,在检测到总线错误时,判定触发所述跑飞事件;
和/或,在检测到执行错误时,判定触发所述跑飞事件;
和/或,在检测到数学运算错误时,判定触发所述跑飞事件;
和/或,在检测到堆栈错误时,判定触发所述跑飞事件;
和/或,在检测到电源管理错误时,判定触发所述跑飞事件;
和/或,在检测到时钟管理错误时,判定触发所述跑飞事件;
和/或,在检测到外设错误时,判定触发所述跑飞事件。
6.根据权利要求1所述的方法,其特征在于,所述中断所述目标程序的代码运行,包括:
中断驱动,以中断所述目标程序的代码运行。
7.根据权利要求1所述的方法,其特征在于,所述获取所述目标程序的当前代码运行状态、寄存器内部状态信息和程序执行状态信息,包括:
调用预设的中断处理函数,收集并记录所述目标程序的当前代码运行状态、所述寄存器内部状态信息,以及所述程序执行状态信息。
8.根据权利要求1所述的方法,其特征在于,所述方法包括:
增加软件埋点,所述软件埋点用于检测所述目标程序是否触发预设的跑飞事件。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述异常状态信息,进行异常分析。
10.一种针对程序跑飞的数据处理装置,其特征在于,所述装置包括:
中断模块,用于在检测到目标程序触发预设的跑飞事件时,中断所述目标程序的代码运行;
获取模块,用于获取所述目标程序的当前代码运行状态、寄存器内部状态信息和程序执行状态信息;
存储模块,用于根据所述当前代码运行状态、所述寄存器内部状态信息和所述程序执行状态信息,生成异常状态信息,并保存所述异常状态信息。
11.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至9中任一项所述针对程序跑飞的数据处理方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9中任一项所述针对程序跑飞的数据处理方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202411034182.4A CN118916202A (zh) | 2024-07-30 | 2024-07-30 | 一种针对程序跑飞的数据处理方法、装置、设备和介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202411034182.4A CN118916202A (zh) | 2024-07-30 | 2024-07-30 | 一种针对程序跑飞的数据处理方法、装置、设备和介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN118916202A true CN118916202A (zh) | 2024-11-08 |
Family
ID=93302392
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202411034182.4A Pending CN118916202A (zh) | 2024-07-30 | 2024-07-30 | 一种针对程序跑飞的数据处理方法、装置、设备和介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN118916202A (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN120909880A (zh) * | 2025-10-10 | 2025-11-07 | 北京开源芯片研究院 | 处理器故障识别方法、装置、电子设备及可读存储介质 |
-
2024
- 2024-07-30 CN CN202411034182.4A patent/CN118916202A/zh active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN120909880A (zh) * | 2025-10-10 | 2025-11-07 | 北京开源芯片研究院 | 处理器故障识别方法、装置、电子设备及可读存储介质 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6944796B2 (en) | Method and system to implement a system event log for system manageability | |
| CN104281520B (zh) | 跟踪和调试的方法、装置及系统 | |
| CN102760090B (zh) | 除错方法及计算机系统 | |
| US20130159977A1 (en) | Open kernel trace aggregation | |
| TWI544410B (zh) | 利用執行單步驟以進行編碼診斷 | |
| US20080276129A1 (en) | Software tracing | |
| CN106354575A (zh) | 一种基于堆栈追溯的故障排查装置和方法 | |
| CN118916202A (zh) | 一种针对程序跑飞的数据处理方法、装置、设备和介质 | |
| CN110704315A (zh) | 一种嵌入式软件测试的故障注入装置 | |
| CN118093235A (zh) | 一种芯片cpu异常诊断方法和装置 | |
| CN115328796B (zh) | 一种用于arm架构的软件漏洞辅助定位方法和系统 | |
| CN117909160B (zh) | 基于物联网的固件崩溃分析方法及装置 | |
| CN118467340A (zh) | Uefi bios的即时调试方法、系统、存储介质及设备 | |
| CN113612661B (zh) | 检验程序稳定性的方法、装置、计算设备及存储介质 | |
| CN117724979A (zh) | 实时操作系统的检测方法、设备及介质 | |
| CN115756935A (zh) | 嵌入式软件系统的异常故障定位方法、装置及设备 | |
| US7415560B2 (en) | Method of automatically monitoring computer system debugging routine | |
| CN115905012A (zh) | 嵌入式系统软件开发场景下的调试分析系统、方法、电子设备及存储介质 | |
| CN119003225B (zh) | 一种故障定位方法及设备、存储介质和计算机程序产品 | |
| JP2003281076A (ja) | Dmaコントローラの不正アクセス検出装置、不正アクセス検出方法およびそのプログラム | |
| CN117076183B (zh) | 一种错误上报方法、片上系统、计算机设备及存储介质 | |
| CN120429122B (zh) | 线程调试方法、装置、控制系统以及电子设备 | |
| US20190310800A1 (en) | Method for accessing code sram and electronic device | |
| CN117076182B (zh) | 一种错误上报方法、片上系统、计算机设备及存储介质 | |
| CN100377097C (zh) | 除错装置 |
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 |