CN113360326A - 调试日志获取方法及设备 - Google Patents
调试日志获取方法及设备 Download PDFInfo
- Publication number
- CN113360326A CN113360326A CN202010155334.1A CN202010155334A CN113360326A CN 113360326 A CN113360326 A CN 113360326A CN 202010155334 A CN202010155334 A CN 202010155334A CN 113360326 A CN113360326 A CN 113360326A
- Authority
- CN
- China
- Prior art keywords
- target
- processor
- log
- address
- target application
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2236—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
- G06F11/2242—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors in multi-processor systems, e.g. one processor becoming the test master
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2268—Logging of test results
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种调试日志获取方法及设备,应用于终端设备的第一处理器,所述终端设备还包括第二处理器,所述方法包括:确定在所述第一处理器上运行的目标应用程序,所述目标应用程序是使用SWD协议工作的;通过所述目标应用程序读取所述第二处理器的目标调试日志;通过所述目标应用程序将所述目标调试日志存储在所述第一处理器的目标存储区。采用本申请实施例可保证终端设备的正常运行。
Description
技术领域
本申请涉及电子技术领域,尤其涉及一种调试日志获取方法及设备。
背景技术
目前的终端设备大多采用双核系统,即存在两个处理器,一个处理器用于处理用户界面等逻辑业务,另一个处理器则具备传感器集线器功能,使终端设备不仅可以快速的处理用户界面业务,而且可以提升续航时间。目前,读取处理器的调试日志所使用的通道和数据传输的通道是相同的,如果数据吞吐量较大时,会导致无法读取处理器的调试日志,影响终端设备的运行。
发明内容
本申请实施例提供一种调试日志获取方法及设备,用于保证终端设备的正常运行。
第一方面,本申请实施例提供一种调试日志获取方法,应用于终端设备的第一处理器,所述终端设备还包括第二处理器,所述方法包括:
确定在所述第一处理器上运行的目标应用程序,所述目标应用程序是使用SWD协议工作的;
通过所述目标应用程序读取所述第二处理器的目标调试日志;
将所述目标调试日志存储在所述第一处理器的目标存储区。
第二方面,本申请实施例提供一种调试日志获取装置,应用于终端设备的第一处理器,所述终端设备还包括第二处理器,所述装置包括:
确定单元,用于确定在所述第一处理器上运行的目标应用程序,所述目标应用程序是使用SWD协议工作的;
读取单元,用于通过所述目标应用程序读取所述第二处理器的目标调试日志;
存储单元,用于将所述目标调试日志存储在所述第一处理器的目标存储区。
第三方面,本申请实施例提供一种终端设备,包括第一处理器、第二处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述第一处理器或第二处理器执行,上述程序包括用于执行本申请实施例第一方面所述的方法中的步骤的指令。
第四方面,本申请实施例提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面所述的方法中所描述的部分或全部步骤。
第五方面,本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面所述的方法中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
可以看出,在本申请实施例中,终端设备的第一处理器首先确定在所述第一处理器上运行的目标应用程序,然后通过所述目标应用程序读取所述第二处理器的目标调试日志,最后将所述目标调试日志存储在所述第一处理器的目标存储区,由于SWD协议是双向协议,通过SWD协议读取处理器的调试日志可避免调试日志不易读取的问题,进而保证了终端设备的正常运行。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是本申请实施例提供的一种终端设备的结构示意图;
图1B是本申请实施例提供的一种调试日志获取的结构示意图;
图2是本申请实施例提供的一种调试日志获取方法的流程示意图;
图3是本申请实施例提供的一种调试日志缓冲区结构示意图;
图4是本申请实施例提供的另一种调试日志获取方法的流程示意图;
图5本申请实施例提供的另一种终端设备的结构示意图;
图6本申请实施例提供的一种调试日志获取装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
以下分别进行详细说明。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
以下,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。
如图1A所示,图1A是本申请实施例提供的一种终端设备的结构示意图。该终端设备可以是各种具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(User Equipment,UE)等等。该终端设备包括第一处理器、第二处理器、信号处理器、通信接口、天线、显示屏、扬声器、麦克风、摄像头、双倍速率同步动态随机存储器(Double Data Rate SDRAM,DDR)、NAND闪存flash、预设存储器、传感器、闪存、预设寄存器等等。其中,信号处理器、显示屏、扬声器、麦克风、DDR、NAND flash、摄像头与第一处理器连接,传感器、闪存及预设存储器与第二处理器连接,通信接口与信号处理器连接,通信接口与天线连接,该天线包括毫米波天线等。
其中,显示屏可以是液晶显示器(Liquid Crystal Display,LCD)、有机或无机发光二极管(Organic Light-Emitting Diode,OLED)、有源矩阵有机发光二极体面板(ActiveMatrix/Organic Light Emitting Diode,AMOLED)等。
其中,该摄像头可以是普通摄像头、也可以是红外摄像,在此不作限定。该摄像头可以是前置摄像头或后置摄像头,在此不作限定。
其中,传感器包括以下至少一种:光感传感器、陀螺仪、红外接近传感器、指纹传感器、压力传感器等等。其中,光感传感器,也称为环境光传感器,用于检测环境光亮度。光线传感器可以包括光敏元件和模数转换器。其中,光敏元件用于将采集的光信号转换为电信号,模数转换器用于将上述电信号转换为数字信号。可选的,光线传感器还可以包括信号放大器,信号放大器可以将光敏元件转换的电信号进行放大后输出至模数转换器。上述光敏元件可以包括光电二极管、光电三极管、光敏电阻、硅光电池中的至少一种。
其中,第一处理器是终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分,通过运行或执行存储在存储器内的软体程序和/或模块,以及调用存储在存储器内的数据,执行终端设备的各种功能和处理数据,从而对终端设备进行整体监控。
其中,第一处理器可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到第一处理器中。
其中,DDR、NAND闪存、闪存、预设存储器以及寄存器均属于存储器。
其中,DDR用于存储软体程序和/或模块,第一处理器通过运行存储在DDR的软件程序和/或模块,从而执行终端设备的各种功能应用以及数据处理。DDR可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的软体程序等;存储数据区可存储根据终端设备的使用所创建的数据等。
其中,预设存储器可用于存储来自传感器的数据等,第二处理器通过运行存储在预设存储器的软件程序和/或模块对来自传感器的数据进行处理。
其中,第一处理器为终端设备中的大核,第二处理器为终端设备中的小核。
其中,第一处理器和第二处理器可通过串行调试接口(Serial Wire Debug,SWD)协议进行通信。
其中,SWD协议是ARM公司定义的标准双向有线协议,以高效且稳定的方式在调试器和目标系统之间传递数据。并提供了所有正常的联合测试工作组(Joint Test ActionGroup,JTAG)调试、测试功能以及对系统内存的实时访问,而无需停止处理器以及无需目标处理器中有任何代码即可通信。
其中,处理器都会有SWD调试接口,第一处理器读取第二处理器的调试日志的原理如图1B所示,第二处理器约定在某个内存段存放调试日志,第一处理器就可以随时从此内存读取。
其中,调试日志存放在调试日志缓冲区中,第一处理器可以通过SWD协议直接读取第二处理器的调试日志缓冲区中的调试日志,也可以通过SWD协议对第一处理器的映射区域进行操作,读取第二处理器的调试日志缓冲区中的调试日志,映射区域可将第二处理器的调试日志缓冲区完全映射,对映射区域进行操作就相当于对第二处理器进行操作,如果第二处理器出现死机崩溃时,还可以通过SWD接口读取第二处理器寄存器的值以及预设存储器RAM中的部分或全部数据,来分析死机崩溃的原因。
目前,一般是通过uart、spi、blue等读取第二处理器的调试日志,而uart、spi、blue等又是数据传输的通道,如果数据吞吐量较大时,会导致无法读取第二处理器的调试日志。
下面对本申请实施例进行详细介绍。
如图2所示,本申请实施例提供的一种调试日志获取方法,应用于终端设备的第一处理器,所述终端设备还包括第二处理器,具体包括以下步骤:
步骤201:确定在所述第一处理器上运行的目标应用程序,所述目标应用程序是使用SWD协议工作的。
其中,目标应用程序可以是预设的能使用SWD协议的应用程序,也可以是在能使用SWD协议的应用程序中随机选择的,也可以是基于优先级在能使用SWD协议的应用程序中选择的,对于未设定优先级的应用程序则默认优先级为2。
举例来说,能使用SWD协议的应用程序包括APP1,APP2及APP3,可以选择APP1作为目标应用程序,也可以选择APP2作为目标应用程序,也可以选择APP3作为目标应用程序。
举例来说,能使用SWD协议的应用程序包括APP1,APP2及APP3,其中APP1的优先级为1,APP2的优先级为2,APP3的优先级为3,则选择优先级最低的APP1作为目标应用程序,也可以选择优先级居中的APP2作为目标应用程序,也可以选择优先级最高的APP3作为目标应用程序。
其中,第一处理器的缓存容量可以大于第二处理器的缓存容量,也可以等于所述第二处理器的缓存容量,也可以小于所述第二处理器的缓存容量。
步骤202:通过所述目标应用程序读取所述第二处理器的目标调试日志。
其中,目标应用程序使用SWD协议读取目标调试日志。
其中,目标调试日志可以是第二处理器中预设寄存器的值,也可以是预设存储器的缓存数据,预设存储器可以是随机存取存储器(Random Access Memory,RAM),也可以是其他存储器的缓存数据。
其中,第二处理器在正常状态下的目标调试日志和在异常状态下的目标调试日志的内容不同。
其中,第二处理器在正常状态下的目标调试日志和在异常状态下的目标调试日志的存储位置可以相同,也可以不同。
其中,第二处理器在正常状态下的目标调试日志和在异常状态下的目标调试日志的大小不同。
其中,第一处理器读取正常状态下第二处理器的目标调试日志和读取异常状态下第二处理器的目标调试日志的方法不同。
步骤203:将所述目标调试日志存储在所述第一处理器的目标存储区。
其中,目标存储区可以是预设的存储区,也可以随机选择的存储区,也可以是根据优先级选择的存储区,也可以是根据第一处理器的状态选择的存储区。举例来说,第一处理器包括存储区A1,A2及A3,可以选择A1作为目标存储区,也可以选择A2作为目标存储区,也可以选择A3作为目标存储区。
举例来说,第一处理器包括存储区A1,A2及A3,A1的优先级为1,A2的优先级为2,A3的优先级为3,则可以选择优先级最低的A1作为目标存储区,也可以选择优先级居中的A2作为目标存储区,也可以选择优先级最高的A3作为目标存储区。
举例来说,第一处理器包括存储区A1,A2及A3,在第一处理器处于正常状态的情况下,将A1作为目标存储区,在第一处理器处于异常状态的情况下,选择A3作为目标存储区。
在本申请的一实现方式中,所述在将所述目标调试日志存储在所述第一处理器的目标存储区之后,所述方法还包括:
通过第一导出方式将所述目标调试日志从所述目标存储区导出到目标设备。
其中,第一导出方式可以是通过USB接口将目标调试日志从所述目标存储区中导出,也可以是采用发送方式,将所述目标调试日志发送到目标设备,也可以通过预设的命令将目标调试日志从所述目标存储区中导出。
其中,目标设备可以是电脑,平板以及手机等其他设备。
可以看出,在本申请实施例中,终端设备的第一处理器首先确定在所述第一处理器上运行的目标应用程序,然后通过所述目标应用程序读取所述第二处理器的目标调试日志,最后将所述目标调试日志存储在所述第一处理器的目标存储区,以使得第一处理器可基于目标调试日志对第二处理器进行调试,有利于第二处理器的正常运行,进而保证了终端设备的正常运行。
在本申请的一实现方式中,所述通过所述目标应用程序读取所述第二处理器的目标调试日志之前,所述方法还包括:
通过所述目标应用程序控制所述第二处理器进行线复位;
通过所述目标应用程序控制所述第二处理器将调试协议切换至所述SWD协议;
通过所述目标应用程序控制所述第二处理器的运行状态转换为调试状态。
在一种可能的实现方式中,所述通过所述目标应用程序控制所述第二处理器进行复位,包括:
通过所述目标应用程序将所述第二处理器中的SWD接口的电压设置为高电平,以及控制所述SWD接口发出设定数量的时钟脉冲对所述第二处理器进行线复位。
其中,时钟脉冲的数量可以是56等其他值。
其中,可以将第二处理器复位到初始状态,也可以是其他状态。
在一种可能的实现方式中,所述通过所述目标应用程序控制所述第二处理器将调试协议切换至所述SWD协议,包括:
通过所述目标应用程序向所述第二处理器发送第一消息,所述第一消息用于指示所述第二处理器将调试协议切换至SWD协议。
其中,第一消息可以是预设的,也可以是协议规定的0xE79E。
其中,将调试协议切换至SWD协议是使协议可以进行转换。
在一种可能的实现方式中,所述通过所述目标应用程序控制所述第二处理器的运行状态转换为调试状态,包括:
通过所述目标应用程序向所述第二处理器发送第二消息,所述第二消息用于指示所述第二处理器将运行状态转换为调试状态。
其中,第二消息可以是预设的,也可以是协议规定的。
其中,对第二处理器进行线复位、将第二处理器的调试协议切换至SWD协议以及将第二处理器的运行状态转换为调试状态按顺序执行一次。
在一种可能的实现方式中,所述通过所述目标应用程序控制所述第二处理器的运行状态转换为调试状态之后,所述方法还包括:
通过所述目标应用程序控制所述第二处理器将调试协议切换至所述SWD协议。
其中,将调试协议切换至所述SWD协议是真正将调试协议切换至SWD协议。
可以看出,在本申请实施例中,首先通过目标应用程序对第二处理器进行复位,然后通过目标应用程序将第二处理器的调试协议切换至SWD,最后通过目标应用程序将第二处理器的运行状态转换为调试状态,使第一处理器可以读取目标调试日志,有利于提升读取目标调试日志的成功率。
在本申请的一实现方式中,当所述第二处理器的运行状态正常时,所述通过所述目标应用程序读取所述第二处理器的目标调试日志,包括:
通过所述目标应用程序读取所述第二处理器中的调试日志缓冲区的缓冲区首地址;
通过所述目标应用程序基于所述缓冲区首地址,确定第一地址和第二地址,所述第一地址和所述第二地址均位于数据区内,所述调试日志缓冲区包括所述数据区、读指针和写指针,所述读指针指向所述第一地址,所述写指针指向所述第二地址;
通过所述目标应用程序基于所述第一地址和所述第二地址确定第一日志长度,以及读取所述第一日志长度对应的第一调试日志;
通过所述目标应用程序基于所述第一日志长度、第一数值以及所述第一调试日志读取所述目标调试日志,所述第一调试日志包括所述目标调试日志,所述第一日志长度大于所述第一数值,所述目标调试日志的第二日志长度为所述第一数值的正整数倍,所述第一日志长度大于或等于所述第二日志长度。
其中,当所述第二处理器的运行状态正常时,终端设备在读取到目标调试日志之后,直接将目标调试日志存储在第一处理器的目标存储区中,无需先存储至临时存储区。
其中,第二处理器运行状态可通过第一状态标志进行指示。
其中,第二处理器运行状态为正常对应的第一状态标志和第二处理器运行状态为异常对应的第一状态标志不同。
其中,第二处理器运行状态为正常对应的第一状态标志和第二处理器运行状态为异常对应的第一状态标志存储的位置可以相同,也可以不同。
其中,第一状态标志可以是预设的。
其中,调试日志缓冲区可以位于第二处理器的预设存储器中,也可以位于第二处理器的其他存储器中。
其中,可以是通过所述目标应用程序读取映射区域中第二处理器的调试日志缓冲区的缓冲区首地址,第一处理器包括映射区域,也可以是直接通过所述目标应用程序读取第二处理器的调试日志缓冲区的缓冲区首地址。
其中,所述目标应用程序对映射区域进行处理,相当于对第二处理器进行处理。
其中,映射区域包括第二处理器的调试日志缓冲区和第二处理器的预设寄存器。
其中,第一数值可以是预设的。
其中,第一日志长度大于第二日志长度。
其中,可能得到第二调试日志,也可能不会得到第二调试日志,第二调试日志的长度小于第一日志长度。
举例来说,第一日志长度为280Byte,第一数值为50Byte,第一调试日志对应的长度为第一日志长度,首先第一日志长度基于第一数值对第一调试日志进行分段处理,如将第一调试日志分为6段,这6段数据的长度分别为50Byte、50Byte、50Byte、50Byte、50Byte以及30Byte;然后将长度为50Byte对应的数据全部进行读取得到目标调试日志,因此目标调试日志的第二日志长度为250Byte,剩下的长度为30Byte对应的数据则为第二调试日志。
可以看出,在本申请实施例中,通过所述目标应用程序基于所述第一日志长度、第一数值以及所述第一调试日志读取所述目标调试日志,有利于对目标调试日志的存储,有效的节约了存储空间。
在本申请的一实现方式中,如图3所示,所述数据区为一个环形队列,所述写指针为所述环形队列的队列头,所述读指针为所述环形队列的队列尾,所述第一处理器控制所述读指针,所述第二处理器控制所述写指针。
其中,第一处理器控制读指针以所述数据区的队列尾为起点读取数据,直至与所述队列头重合。
其中,所述数据区为调试日志读取区。
其中,写指针和读指针重合,表明第一处理器对第二处理器中的数据全部进行了读取。
其中,所述调试日志缓冲区还包括调试日志写入区、另一个写指针和另一个读指针,所述调试日志写入区为另一个环形队列,所述另一个写指针为所述另一个环形队列的队列头,所述另一个读指针为所述另一个环形队列的队列尾。
其中,第一处理器控制写指针以所述调试日志写入区的队列头为起点写入数据,第二处理器控制读指针以所述调试日志写入区的队列尾为起点读取数据。
其中,另一个写指针和另一个读指针均指向调试日志写入区。
其中,另一个写指针和另一个读指针重合,表明第二处理器对第一处理器写入的数据全部进行了读取。
可以看出,在本申请实施例中,通过控制环形队列的队列尾对数据区中的数据进行读取,可以保证读取的数据均是未被读取的数据,有利于降低第一处理器中的冗余数据。
在本申请的一实现方式中,所述通过所述目标应用程序基于所述缓冲区首地址,确定第一地址和第二地址,包括:
通过所述目标应用程序基于所述缓冲区首地址,读取所述数据区的数据首地址,所述数据首地址存储在所述缓冲区首地址对应的存储空间中;
通过所述目标应用程序基于所述数据首地址及第一数据结构体成员对应的第一偏移量,确定所述第一地址;
调用所述目标应用程序基于所述数据首地址及第二数据结构体成员对应的第二偏移量,确定所述第二地址,所述第一数据结构体成员和所述第二数据结构体成员属于同一数据结构体。
其中,第一数据结构体成员和第二数据结构体成员可以相同,也可以不同。
其中,数据结构体成员可以是int、float、double、char等其他数据结构体成员。
其中,数据结构体成员int对应的偏移量为4Byte,char对应的偏移量为1Byte。
举例来说,所述数据区的第二首地址为0x30000001,第一数据结构体成员为short,第二数据结构体成员为int,则第一数据结构体成员对应的第一偏移量为2Byte,第二数据结构体成员对应的第二偏移量为4Byte,因此第一地址为0x30000003,第二地址为0x3000005。
其中,第一偏移量和第二偏移量可以相同,也可以不同。
其中,第一偏移量和第二偏移量相同时,第一地址和第二地址重合,读指针和写指针重合,表明不存在可以读取的数据。
其中,在读指针和写指针不重合的情况下,读指针在后,写指针在前。
其中,数据区的数据首地址向下偏移第一偏移量,可确定第一地址,数据区的数据首地址向下偏移第二偏移量,可确定第二地址。
可以看出,在本申请实施例中,首先通过目标应用程序基于调试日志缓冲区的缓冲区首地址,读取数据区的数据首地址,然后通过目标应用程序基于数据区的数据首地址、第一数据结构体成员对应的偏移量以及第二数据结构体成员对应的偏移量分别确定第一地址和第二地址,表明第二处理器在存储方面的层次性,有利于提高第一处理器通过目标应用程序读取数据的效率。
在本申请的一实现方式中,所述通过所述目标应用程序基于所述第一地址和所述第二地址确定第一日志长度,以及读取所述第一日志长度对应的第一调试日志,包括:
通过所述目标应用程序基于所述第一地址和所述第二地址的差值,确定所述第一日志长度;
通过所述目标应用程序控制所述读指针以所述第一地址为起点,在所述数据区中读取所述第一日志长度对应的所述第一调试日志。
其中,第二地址大于或等于第一地址。
其中,第一日志长度大于或等于0Byte。
举例来说,第一地址为0x4000000a,第二地址为0x40000011,则第一地址和第二地址只差为7Byte,则读指针以第一地址为起点,向后读取第一地址到第二地址长度为7Byte的数据。
其中,在读指针读取第一日志长度对应的第一调试日志之后,读指针和写指针重合。
可以看出,在本申请实施例中,通过所述目标应用程序基于所述第一地址和所述第二地址确定第一日志长度,以及读取所述第一日志长度对应的第一调试日志,保证第一处理器对第二处理器中未被读取的数据全部进行了读取,保证了第一调试日志的完整性
在本申请的一实现方式中,当所述第二处理器的运行状态异常时,所述通过所述目标应用程序读取所述第二处理器的目标调试日志,包括:
通过所述目标应用程序读取所述第二处理器中的预设寄存器的第一目标调试日志,所述第一目标调试日志为所述预设寄存器的值;
通过所述目标应用程序以所述第二处理器中的预设存储器的目标地址为起点,读取第三日志长度对应的第二目标调试日志,所述目标调试日志包括所述第一目标调试日志和所述第二目标调试日志。
其中,预设寄存器可以是第二处理器的内核寄存器,也可以是其他寄存器。
其中,目标地址可以是预设的,也可以是随机的。
其中,预设存储器可以是RAM存储器,也可以是其他存储器。
其中,第一目标调试日志所占的字节数可以大于或等于第二目标调试日志所占的字节数,也可以小于第二目标调试日志所占的字节数。
其中,读取第一目标调试日志可以在读取第二调试日志之前进行,也可以在读取第二调试日志之后进行,也可以和读取第二调试日志同时进行。
可以看出,在本实施例中,通过所述目标应用程序分别读取预设寄存器的第一目标调试日志和预设存储器中第二目标调试日志,有利于对第二处理器的运行状态异常的原因进行分析。
在本申请的一实现方式中,所述将所述目标调试日志存储在所述第一处理器的目标存储区,包括:
通过所述目标应用程序将所述第一目标调试日志存储在所述第一处理器的第一临时存储区;
通过所述目标应用程序将所述第二目标调试日志存储在所述第一处理器的第二临时存储区;
通过所述目标应用程序从所述第一临时存储区中提取所述第一目标调试日志,从所述第二临时存储区中提取所述第二目标调试日志,以及将所述第一目标调试日志和所述第二目标调试日志存储在所述第一处理器的所述目标存储区。
其中,第一临时存储区所占的比特数可以和第二临时存储区所占的比特数相同,也可以不同。
其中,在目标存储区中可以是第一调试日志存储在第二调试日志存储前面,也可以是第一调试日志存储在第二调试日志存储后面。
其中,第一调试日志和第二调试日志存储在目标存储区后,第一临时存储区和第二临时存储区会在第一时长后释放,第一时长是预设的,可以是3分钟,也可以是5分钟,也可以是10分钟等其他时长。
可以看出,在本申请实施例中,将第一目标调试日志和第二目标调试日志首先存储在对应的临时缓冲区,然后再从临时缓冲区中提取对应的调试日志存储到目标存储区,避免了调试日志存储的混乱,有利于提升目标调试日志的正确性。
与所述图2所示的实施例一致的,请参阅图4,图4是本申请实施例提供的另一种调试日志获取方法的流程示意图,应用于终端设备的第一处理器,所述终端设备还包括第二处理器,具体包括以下步骤:
步骤401:确定在所述第一处理器上运行的目标应用程序,所述目标应用程序是使用SWD协议工作的。
步骤402:通过所述目标应用程序控制所述第二处理器进行线复位。
步骤403:通过所述目标应用程序控制所述第二处理器将调试协议切换至所述SWD协议。
步骤404:通过所述目标应用程序控制所述第二处理器的运行状态转换为调试状态。
步骤405:判断所述第二处理器的运行状态是否正常。
若是,执行步骤406;
若否,执行步骤414。
步骤406:通过所述目标应用程序读取所述第二处理器中的调试日志缓冲区的缓冲区首地址。
步骤407:通过所述目标应用程序基于所述缓冲区首地址,读取所述数据区的数据首地址,所述数据首地址存储在所述缓冲区首地址对应的存储空间中,所述数据区为一个环形队列,所述写指针为所述环形队列的队列头,所述读指针为所述环形队列的队列尾,所述第一处理器控制所述读指针,所述第二处理器控制所述写指针。
步骤408:通过所述目标应用程序基于所述数据首地址及第一数据结构体成员对应的第一偏移量,确定所述第一地址。
步骤409:调用所述目标应用程序基于所述数据首地址及第二数据结构体成员对应的第二偏移量,确定所述第二地址,所述第一数据结构体成员和所述第二数据结构体成员属于同一数据结构体。
步骤410:通过所述目标应用程序基于所述第一地址和所述第二地址的差值,确定所述第一日志长度。
步骤411:通过所述目标应用程序控制所述读指针以所述第一地址为起点,在所述数据区中读取所述第一日志长度对应的所述第一调试日志。
步骤412:通过所述目标应用程序基于所述第一日志长度、第一数值以及所述第一调试日志读取所述目标调试日志,所述第一调试日志包括所述目标调试日志,所述第一日志长度大于所述第一数值,所述目标调试日志的第二日志长度为所述第一数值的正整数倍,所述第一日志长度大于或等于所述第二日志长度。
步骤413:通过所述目标应用程序将所述目标调试日志存储在所述第一处理器的目标存储区。
步骤414:通过所述目标应用程序读取所述第二处理器中的预设寄存器的第一目标调试日志,所述第一目标调试日志为所述预设寄存器的全部缓存数据。
步骤415:通过所述目标应用程序以所述第二处理器中的预设存储器的目标地址为起点,读取第三日志长度对应的第二目标调试日志,所述目标调试日志包括所述第一目标调试日志和所述第二目标调试日志。
步骤416:通过所述目标应用程序将所述第一目标调试日志存储在所述第一处理器的第一临时存储区。
步骤417:通过所述目标应用程序将所述第二目标调试日志存储在所述第一处理器的第二临时存储区。
步骤418:通过所述目标应用程序从所述第一临时存储区中提取所述第一目标调试日志,从所述第二临时存储区中提取所述第二目标调试日志,以及将所述第一目标调试日志和所述第二目标调试日志存储在所述第一处理器的所述目标存储区。
需要说明的是,本申请实施例的具体实现过程可参见上述方法实施例所述的具体实现过程,在此不再叙述。
与上述图2和图4所示的实施例一致的,请参阅图5,图5是本申请实施例提供的一种终端设备的结构示意图,如图所示,该终端设备包括第一处理器、第二处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述第一处理器或第一处理器执行,上述程序包括用于执行以下步骤的指令:
确定在所述第一处理器上运行的目标应用程序,所述目标应用程序是使用SWD协议工作的;
通过所述目标应用程序读取所述第二处理器的目标调试日志;
通过所述目标应用程序将所述目标调试日志存储在所述第一处理器的目标存储区。
在本申请的一实现方式中,所述通过所述目标应用程序读取所述第二处理器的目标调试日志之前,上述程序包括具体用于执行以下步骤指令:
通过所述目标应用程序控制所述第二处理器进行线复位;
通过所述目标应用程序控制所述第二处理器将调试协议切换至所述SWD协议;
通过所述目标应用程序控制所述第二处理器的运行状态转换为调试状态。
在本申请的一实现方式中,当所述第二处理器的运行状态正常时,在所述通过所述目标应用程序读取所述第二处理器的目标调试日志方面,上述程序包括具体用于执行以下步骤指令:
通过所述目标应用程序读取所述第二处理器中的调试日志缓冲区的缓冲区首地址;
通过所述目标应用程序基于所述缓冲区首地址,确定第一地址和第二地址,所述第一地址和所述第二地址均位于数据区内,所述调试日志缓冲区包括所述数据区、读指针和写指针,所述读指针指向所述第一地址,所述写指针指向所述第二地址;
通过所述目标应用程序基于所述第一地址和所述第二地址确定第一日志长度,以及读取所述第一日志长度对应的第一调试日志;
通过所述目标应用程序基于所述第一日志长度、第一数值以及所述第一调试日志读取所述目标调试日志,所述第一调试日志包括所述目标调试日志,所述第一日志长度大于所述第一数值,所述目标调试日志的第二日志长度为所述第一数值的正整数倍,所述第一日志长度大于或等于所述第二日志长度。
在本申请的一实现方式中,所述数据区为一个环形队列,所述写指针为所述环形队列的队列头,所述读指针为所述环形队列的队列尾,所述第一处理器控制所述读指针,所述第二处理器控制所述写指针。
在本申请的一实现方式中,在所述通过所述目标应用程序基于所述缓冲区首地址,确定第一地址和第二地址方面,上述程序包括具体用于执行以下步骤指令:
通过所述目标应用程序基于所述缓冲区首地址,读取所述数据区的数据首地址,所述数据首地址存储在所述缓冲区首地址对应的存储空间中;
通过所述目标应用程序基于所述数据首地址及第一数据结构体成员对应的第一偏移量,确定所述第一地址;
调用所述目标应用程序基于所述数据首地址及第二数据结构体成员对应的第二偏移量,确定所述第二地址,所述第一数据结构体成员和所述第二数据结构体成员属于同一数据结构体。
在本申请的一实现方式中,在所述通过所述目标应用程序基于所述第一地址和所述第二地址确定第一日志长度,以及读取所述第一日志长度对应的第一调试日志方面,上述程序包括具体用于执行以下步骤指令:
通过所述目标应用程序基于所述第一地址和所述第二地址的差值,确定所述第一日志长度;
通过所述目标应用程序控制所述读指针以所述第一地址为起点,在所述数据区中读取所述第一日志长度对应的所述第一调试日志。
在本申请的一实现方式中,当所述第二处理器的运行状态异常时,在所述通过所述目标应用程序读取所述第二处理器的目标调试日志方面,上述程序包括具体用于执行以下步骤指令:
通过所述目标应用程序读取所述第二处理器中的预设寄存器的第一目标调试日志,所述第一目标调试日志为所述预设寄存器的值;
通过所述目标应用程序以所述第二处理器中的预设存储器的目标地址为起点,读取第三日志长度对应的第二目标调试日志,所述目标调试日志包括所述第一目标调试日志和所述第二目标调试日志。
在本申请的一实现方式中,在所述将所述目标调试日志存储在所述第一处理器的目标存储区方面,上述程序包括具体用于执行以下步骤指令:
通过所述目标应用程序将所述第一目标调试日志存储在所述第一处理器的第一临时存储区;
通过所述目标应用程序将所述第二目标调试日志存储在所述第一处理器的第二临时存储区;
通过所述目标应用程序将所述第一目标调试日志存储在所述第一处理器的第一临时存储区;
通过所述目标应用程序将所述第二目标调试日志存储在所述第一处理器的第二临时存储区;
通过所述目标应用程序从所述第一临时存储区中提取所述第一目标调试日志,从所述第二临时存储区中提取所述第二目标调试日志,以及将所述第一目标调试日志和所述第二目标调试日志存储在所述第一处理器的所述目标存储区。
需要说明的是,本申请实施例的具体实现过程可参见上述方法实施例所述的具体实现过程,在此不再叙述。
请参阅图6,图6是本申请实施例提供的一种调试日志获取装置,应用于终端设备的第一处理器,所述终端设备还包括第二处理器,所述装置包括:
确定单元601,用于确定在所述第一处理器上运行的目标应用程序,所述目标应用程序是使用SWD协议工作的;
读取单元602,用于通过所述目标应用程序读取所述第二处理器的目标调试日志;
存储单元603,用于通过所述目标应用程序将所述目标调试日志存储在所述第一处理器的目标存储区。
其中,所述装置具体还包括控制单元604。
在本申请的一实现方式中,所述通过所述目标应用程序读取所述第二处理器的目标调试日志之前,控制单元604具体用于执行以下步骤指令:
通过所述目标应用程序控制所述第二处理器进行线复位;
通过所述目标应用程序控制所述第二处理器将调试协议切换至所述SWD协议;
通过所述目标应用程序控制所述第二处理器的运行状态转换为调试状态。
在本申请的一实现方式中,所述第二处理器的运行状态正常,在所述通过所述目标应用程序读取所述第二处理器的目标调试日志方面,读取单元602具体用于执行以下步骤指令:
通过所述目标应用程序读取所述第二处理器中的调试日志缓冲区的缓冲区首地址;
通过所述目标应用程序基于所述缓冲区首地址,确定第一地址和第二地址,所述第一地址和所述第二地址均为数据区的地址,所述调试日志缓冲区包括所述数据区、读指针和写指针,所述读指针指向所述第一地址,所述写指针指向所述第二地址;
通过所述目标应用程序基于所述第一地址和所述第二地址确定第一日志长度,以及读取所述第一日志长度对应的第一调试日志;
通过所述目标应用程序基于所述第一日志长度、第一数值以及所述第一调试日志读取所述目标调试日志,所述第一调试日志包括所述目标调试日志,所述第一日志长度大于所述第一数值,所述目标调试日志的第二日志长度为所述第一数值的正整数倍,所述第一日志长度大于或等于所述第二日志长度。
在本申请的一实现方式中,所述数据区为一个环形队列,所述写指针为所述环形队列的队列头,所述读指针为所述环形队列的队列尾,所述第一处理器控制所述读指针,所述第二处理器控制所述写指针。
在本申请的一实现方式中,在所述通过所述目标应用程序基于所述缓冲区首地址,确定第一地址和第二地址方面,读取单元602具体用于执行以下步骤指令:
通过所述目标应用程序基于所述缓冲区首地址,读取所述数据区的数据首地址,所述数据首地址存储在所述缓冲区首地址对应的存储空间中;
通过所述目标应用程序基于所述数据首地址及第一数据结构体成员对应的第一偏移量,确定所述第一地址;
调用所述目标应用程序基于所述数据首地址及第二数据结构体成员对应的第二偏移量,确定所述第二地址,所述第一数据结构体成员和所述第二数据结构体成员属于同一数据结构体。
在本申请的一实现方式中,在所述通过所述目标应用程序基于所述第一地址和所述第二地址确定第一日志长度,以及读取所述第一日志长度对应的第一调试日志方面,读取单元602具体用于执行以下步骤指令:
通过所述目标应用程序基于所述第一地址和所述第二地址的差值,确定所述第一日志长度;
通过所述目标应用程序控制所述读指针以所述第一地址为起点,在所述数据区中读取所述第一日志长度对应的所述第一调试日志。
在本申请的一实现方式中,当所述第二处理器的运行状态异常时,在所述通过所述目标应用程序读取所述第二处理器的目标调试日志方面,读取单元602具体用于执行以下步骤指令:
通过所述目标应用程序读取所述第二处理器中的预设寄存器的第一目标调试日志,所述第一目标调试日志为所述预设寄存器的全部缓存数据;
通过所述目标应用程序以所述第二处理器中的预设存储器的目标地址为起点,读取第三日志长度对应的第二目标调试日志,所述目标调试日志包括所述第一目标调试日志和所述第二目标调试日志。
在本申请的一实现方式中,在所述将所述目标调试日志存储在所述第一处理器的目标存储区方面,存储单元603具体用于执行以下步骤指令:
通过所述目标应用程序将所述第一目标调试日志存储在所述第一处理器的第一临时存储区;
通过所述目标应用程序将所述第二目标调试日志存储在所述第一处理器的第二临时存储区;
通过所述目标应用程序将所述第一目标调试日志存储在所述第一处理器的第一临时存储区;
通过所述目标应用程序将所述第二目标调试日志存储在所述第一处理器的第二临时存储区;
通过所述目标应用程序从所述第一临时存储区中提取所述第一目标调试日志,从所述第二临时存储区中提取所述第二目标调试日志,以及将所述第一目标调试日志和所述第二目标调试日志存储在所述第一处理器的所述目标存储区。
需要说明的是,确定单元601、读取单元602、存储单元603及控制单元604可通过第一处理器实现。
本申请实施例还提供了一种计算机可读存储介质,其中,所述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如上述方法实施例中终端设备所描述的部分或全部步骤。
本申请实施例还提供了一种计算机程序产品,其中,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如上述方法中终端设备所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
本申请实施例所描述的方法或者算法的步骤可以以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read OnlyMemory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于接入网设备、目标网络设备或核心网设备中。当然,处理器和存储介质也可以作为分立组件存在于接入网设备、目标网络设备或核心网设备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DigitalSubscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,数字视频光盘(DigitalVideo Disc,DVD))、或者半导体介质(例如,固态硬盘(Solid State Disk,SSD))等。
以上所述的具体实施方式,对本申请实施例的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请实施例的具体实施方式而已,并不用于限定本申请实施例的保护范围,凡在本申请实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请实施例的保护范围之内。
Claims (11)
1.一种调试日志获取方法,其特征在于,应用于终端设备的第一处理器,所述终端设备还包括第二处理器,所述方法包括:
确定在所述第一处理器上运行的目标应用程序,所述目标应用程序是使用串行调试接口SWD协议工作的;
通过所述目标应用程序读取所述第二处理器的目标调试日志;
通过所述目标应用程序将所述目标调试日志存储在所述第一处理器的目标存储区。
2.根据权利要求1所述的方法,其特征在于,所述通过所述目标应用程序读取所述第二处理器的目标调试日志之前,所述方法还包括:
通过所述目标应用程序控制所述第二处理器进行线复位;
通过所述目标应用程序控制所述第二处理器将调试协议切换至所述SWD协议;
通过所述目标应用程序控制所述第二处理器的运行状态转换为调试状态。
3.根据权利要求2所述的方法,其特征在于,当所述第二处理器的运行状态正常时,所述通过所述目标应用程序读取所述第二处理器的目标调试日志,包括:
通过所述目标应用程序读取所述第二处理器中的调试日志缓冲区的缓冲区首地址;
通过所述目标应用程序基于所述缓冲区首地址,确定第一地址和第二地址,所述第一地址和所述第二地址均位于数据区内,所述调试日志缓冲区包括所述数据区、读指针和写指针,所述读指针指向所述第一地址,所述写指针指向所述第二地址;
通过所述目标应用程序基于所述第一地址和所述第二地址确定第一日志长度,以及读取所述第一日志长度对应的第一调试日志;
通过所述目标应用程序基于所述第一日志长度、第一数值以及所述第一调试日志读取所述目标调试日志,所述第一调试日志包括所述目标调试日志,所述第一日志长度大于所述第一数值,所述目标调试日志的第二日志长度为所述第一数值的正整数倍,所述第一日志长度大于或等于所述第二日志长度。
4.根据权利要求3所述的方法,其特征在于,所述数据区为一个环形队列,所述写指针为所述环形队列的队列头,所述读指针为所述环形队列的队列尾,所述第一处理器控制所述读指针,所述第二处理器控制所述写指针。
5.根据权利要求3或4所述的方法,其特征在于,所述通过所述目标应用程序基于所述缓冲区首地址,确定第一地址和第二地址,包括:
通过所述目标应用程序基于所述缓冲区首地址,读取所述数据区的数据首地址,所述数据首地址存储在所述缓冲区首地址对应的存储空间中;
通过所述目标应用程序基于所述数据首地址及第一数据结构体成员对应的第一偏移量,确定所述第一地址;
调用所述目标应用程序基于所述数据首地址及第二数据结构体成员对应的第二偏移量,确定所述第二地址,所述第一数据结构体成员和所述第二数据结构体成员属于同一数据结构体。
6.根据权利要求3-5任一项所述的方法,其特征在于,所述通过所述目标应用程序基于所述第一地址和所述第二地址确定第一日志长度,以及读取所述第一日志长度对应的第一调试日志,包括:
通过所述目标应用程序基于所述第一地址和所述第二地址的差值,确定所述第一日志长度;
通过所述目标应用程序控制所述读指针以所述第一地址为起点,在所述数据区中读取所述第一日志长度对应的所述第一调试日志。
7.根据权利要求2所述的方法,其特征在于,当所述第二处理器的运行状态异常时,所述通过所述目标应用程序读取所述第二处理器的目标调试日志,包括:
通过所述目标应用程序读取所述第二处理器中的预设寄存器的第一目标调试日志,所述第一目标调试日志为所述预设寄存器的值;
通过所述目标应用程序以所述第二处理器中的预设存储器的目标地址为起点,读取第三日志长度对应的第二目标调试日志,所述目标调试日志包括所述第一目标调试日志和所述第二目标调试日志。
8.根据权利要求7所述的方法,其特征在于,所述将所述目标调试日志存储在所述第一处理器的目标存储区,包括:
通过所述目标应用程序将所述第一目标调试日志存储在所述第一处理器的第一临时存储区;
通过所述目标应用程序将所述第二目标调试日志存储在所述第一处理器的第二临时存储区;
通过所述目标应用程序从所述第一临时存储区中提取所述第一目标调试日志,从所述第二临时存储区中提取所述第二目标调试日志,以及将所述第一目标调试日志和所述第二目标调试日志存储在所述第一处理器的所述目标存储区。
9.一种调试日志获取装置,其特征在于,应用于终端设备的第一处理器,所述终端设备还包括第二处理器,所述装置包括:
确定单元,用于确定在所述第一处理器上运行的目标应用程序,所述目标应用程序是使用串行调试接口SWD协议工作的;
读取单元,用于通过所述目标应用程序读取所述第二处理器的目标调试日志;
存储单元,用于通过所述目标应用程序将所述目标调试日志存储在所述第一处理器的目标存储区。
10.一种终端设备,其特征在于,所述终端设备包括第一处理器、第二处理器、存储器、通信接口,以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述第一处理器或第二处理器执行,所述程序包括用于执行如权利要求1-8任一项所述的方法中的步骤的指令。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,其中,所述计算机程序被处理执行如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010155334.1A CN113360326B (zh) | 2020-03-06 | 2020-03-06 | 调试日志获取方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010155334.1A CN113360326B (zh) | 2020-03-06 | 2020-03-06 | 调试日志获取方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113360326A true CN113360326A (zh) | 2021-09-07 |
CN113360326B CN113360326B (zh) | 2023-02-28 |
Family
ID=77524322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010155334.1A Active CN113360326B (zh) | 2020-03-06 | 2020-03-06 | 调试日志获取方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113360326B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843694A (zh) * | 2015-02-04 | 2016-08-10 | 苹果公司 | 可独立操作的处理器之间错误信息的受控恢复方法和装置 |
US20170139605A1 (en) * | 2015-11-17 | 2017-05-18 | Fujitsu Limited | Control device and control method |
US20170147422A1 (en) * | 2015-11-23 | 2017-05-25 | Alcatel-Lucent Canada, Inc. | External software fault detection system for distributed multi-cpu architecture |
CN108121625A (zh) * | 2016-11-30 | 2018-06-05 | 联芯科技有限公司 | 出错时获取数据的方法 |
CN109992485A (zh) * | 2019-03-20 | 2019-07-09 | 珠海天燕科技有限公司 | 一种调试日志提供方法、终端设备及服务器 |
-
2020
- 2020-03-06 CN CN202010155334.1A patent/CN113360326B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843694A (zh) * | 2015-02-04 | 2016-08-10 | 苹果公司 | 可独立操作的处理器之间错误信息的受控恢复方法和装置 |
US20170139605A1 (en) * | 2015-11-17 | 2017-05-18 | Fujitsu Limited | Control device and control method |
US20170147422A1 (en) * | 2015-11-23 | 2017-05-25 | Alcatel-Lucent Canada, Inc. | External software fault detection system for distributed multi-cpu architecture |
CN108121625A (zh) * | 2016-11-30 | 2018-06-05 | 联芯科技有限公司 | 出错时获取数据的方法 |
CN109992485A (zh) * | 2019-03-20 | 2019-07-09 | 珠海天燕科技有限公司 | 一种调试日志提供方法、终端设备及服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN113360326B (zh) | 2023-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6810444B2 (en) | Memory system allowing fast operation of processor while using flash memory incapable of random access | |
CN111078523B (zh) | 日志获取方法、装置、存储介质及电子设备 | |
CN112491998A (zh) | 消息推送方法及相关设备 | |
CN111104180B (zh) | 应用程序优化方法、装置、存储介质及电子设备 | |
CN110209605B (zh) | Pcie总线网卡的寄存器读写方法和计算设备 | |
US8230137B2 (en) | Network processor, reception controller and data reception processing method performing direct memory access transfer | |
CN110881224B (zh) | 一种网络长连接方法、装置、设备及存储介质 | |
CN110765085A (zh) | 日志信息写入方法、系统、存储介质及移动终端 | |
CN114296646A (zh) | 基于io业务的缓存方法、装置、服务器和存储介质 | |
WO2022032990A1 (zh) | 一种命令信息传输方法、系统、装置及可读存储介质 | |
CN113360326B (zh) | 调试日志获取方法及设备 | |
CN114691481A (zh) | 异常定位方法、装置及可读存储介质 | |
CN110837343B (zh) | 处理快照的方法、装置及终端 | |
CN108132817B (zh) | 对象管理方法及装置 | |
CN116361106A (zh) | 一种日志处理方法、装置、电子设备及存储介质 | |
CN115525462A (zh) | 一种日志存储方法、装置、电子设备及存储介质 | |
CN114490127A (zh) | 核间通信方法、装置、电子设备及存储介质 | |
EP3819763B1 (en) | Electronic device and operating method thereof | |
CN114070892A (zh) | 数据传输方法和装置 | |
KR20040067063A (ko) | 디지털 신호 처리장치의 저전력 소비형 캐시 메모리 장치및 이에 대한 제어방법 | |
CN114371978B (zh) | 安卓获取数据的方法、设备、装置和系统 | |
CN110716908A (zh) | 日志信息写入方法、系统、存储介质及移动终端 | |
CN116088955B (zh) | 进程处理方法和终端设备 | |
CN111124627A (zh) | 应用程序的调起者确定方法、装置、终端及存储介质 | |
CN112732568B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |