CN109144844B - 追踪方法、装置、设备和机器可读介质 - Google Patents
追踪方法、装置、设备和机器可读介质 Download PDFInfo
- Publication number
- CN109144844B CN109144844B CN201710500931.1A CN201710500931A CN109144844B CN 109144844 B CN109144844 B CN 109144844B CN 201710500931 A CN201710500931 A CN 201710500931A CN 109144844 B CN109144844 B CN 109144844B
- Authority
- CN
- China
- Prior art keywords
- operating system
- cache
- behavior
- tracking result
- interrupt
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供了一种追踪方法、装置、设备和机器可读介质,其中的方法具体包括:在关中断的情况下,将操作系统行为和/或程序运行行为的追踪结果写入缓存;在开中断的情况下,从所述缓存中读取追踪结果并发送。本申请实施例可以有效缩短操作系统的最大关中断时间,进而可以有效提升操作系统和/或程序的性能。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种追踪方法、一种追踪装置、一种设备和一种机器可读介质。
背景技术
计算机系统包括通用计算机系统(PC机)和嵌入式计算机系统(简称嵌入式系统,Embedded System),而实时操作系统(RTOS,Real Time Operating System)是嵌入式系统的基础运行平台,是嵌入式系统稳定、可靠工作的基础,其功能和性能的好坏将直接影响嵌入式系统的功能和性能。RTOS的一个特性是实时性,该实时性可以反映实时操作系统快速响应外部事件的能力,RTOS的一个指标为最大关中断时间。
调试是RTOS在前期开发过程以及后期维护过程中的重要环节。目前,可以通过操作系统行为的追踪实现RTOS的调试,现有的追踪方案可以在关中断的情况下,通过串口通讯方式将操作系统行为的追踪结果发送出去,以使通信对端获知实时操作系统中操作系统行为的追踪结果。
然而,在实际应用中,由于串口通讯的速率较低,故通常需要较长的时间,才能通过串口通讯方式将追踪结果发送出去,因此,现有的追踪方案将增加RTOS的最大关中断时间,进而影响RTOS的性能;而最大关中断时间的提升可能会引起硬件设备的中断丢失,从而造成硬件设备的数据丢失;或者,也有可能造成任务或者程序的响应时间迟钝,导致任务或者程序在规定的时间内无法完成所要做的行为;甚至,在有些情况下,最大关中断时间的提升还有可能导致RTOS出现错误。
发明内容
本申请实施例所要解决的技术问题是提供一种追踪方法,可以有效缩短操作系统的最大关中断时间,进而可以有效提升操作系统和/或程序的性能。
相应的,本申请实施例还提供了一种追踪装置、一种设备、以及一个或多个存储介质,用以保证上述方法的实现及应用。
为了解决上述问题,本申请实施例公开了一种追踪方法,包括:
在关中断的情况下,将操作系统行为和/或程序运行行为的追踪结果写入缓存;
在开中断的情况下,从所述缓存中读取追踪结果并发送。
可选地,所述在开中断的情况下,从所述缓存中读取追踪结果并发送,包括:
在开中断的情况下,按照预置周期,从所述缓存中读取追踪结果并发送。
可选地,所述在开中断的情况下,按照预置周期,从所述缓存中读取追踪结果并发送,包括:
在开中断的情况下,从所述缓存中读取追踪结果并发送;
在发送读取的追踪结果后,按照预置周期进入休眠状态。
可选地,在所述在开中断的情况下,从所述缓存中读取追踪结果并发送之前,所述方法还包括:
在将操作系统行为和/或程序运行行为的追踪结果写入缓存后,开中断。
可选地,在所述在关中断的情况下,将操作系统行为和/或程序运行行为的追踪结果写入缓存之前,所述方法还包括:
在检测到操作系统和/或程序的API被调用、且对应的调用信息符合预置条件时,关中断。
可选地,在所述在关中断的情况下,将操作系统行为和/或程序运行行为的追踪结果写入缓存之前,所述方法还包括:
在检测到操作系统和/或程序的API被调用时,对被调用的API对应的操作系统行为和/或程序运行行为进行追踪,以得到操作系统行为和/或程序运行行为的追踪结果。
本申请实施例还公开了一种追踪装置,包括:
写缓存模块,用于在关中断的情况下,将操作系统行为和/或程序运行行为的追踪结果写入缓存;
读缓存模块,用于在开中断的情况下,从所述缓存中读取追踪结果;
发送模块,用于在开中断的情况下,发送读取的追踪结果。
可选地,所述读缓存模块在开中断的情况下,按照预置周期从所述缓存中读取追踪结果;
所述发送模块在开中断的情况下,按照预置周期发送读取的追踪结果。
可选地,所述读缓存模块和所述发送模块在所述发送模块发送读取的追踪结果后,按照预置周期进入休眠状态。
可选地,所述装置还包括:
开中断模块,用于在所述读缓存模块在开中断的情况下,从所述缓存中读取追踪结果之前,在将操作系统行为和/或程序运行行为的追踪结果写入缓存后,开中断。
可选地,所述装置还包括:
关中断模块,用于在所述写缓存模块在关中断的情况下,将操作系统行为和/或程序运行行为的追踪结果写入缓存之前,在检测到操作系统的API被调用、且对应的调用信息符合预置条件时,关中断。
可选地,所述装置还包括:
追踪模块,用于在所述写缓存模块在关中断的情况下,将操作系统行为和/或程序运行行为的追踪结果写入缓存之前,在检测到操作系统和/或程序的API被调用时,对被调用的API对应的操作系统行为和/或程序运行行为进行追踪,以得到操作系统行为和/或程序运行行为的追踪结果。
本申请实施例还公开了一种设备,包括:一个或多个处理器;和,其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述设备执行如本申请实施例中一个或多个所述的追踪方法。
本申请实施例还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得设备执行如本申请实施例中一个或多个所述的追踪方法。
与现有技术相比,本申请实施例包括以下优点:
本申请实施例可以在关中断的情况下,通过处理器将操作系统行为和/或程序运行行为的追踪结果写入缓存,而处理器将操作系统行为和/或程序运行行为的追踪结果写入缓存的速率通常大幅高于通过串口通讯等方式发送操作系统行为的追踪结果的速率,故本申请实施例可以在关中断的情况下,快速地将操作系统行为和/或程序运行行为的追踪结果写入缓存,这样,可以有效缩短操作系统的最大关中断时间,进而可以有效提升操作系统和/或程序的性能。
附图说明
图1是本申请实施例的一种追踪方法的应用环境的示意图;
图2是本申请的一种追踪方法实施例的流程图;
图3是本申请的另一种追踪方法实施例的流程图;
图4是本申请的再一种追踪方法实施例的流程图;
图5是本申请的一种追踪装置实施例的结构框图;以及
图6是本申请一实施例提供的设备的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
本申请的构思易于进行各种修改和替代形式,其具体实施例已经通过附图的方式示出,并将在这里详细描述。然而,应该理解,上述内容并不是用来将本申请的构思限制为所公开的具体形式,相反地,本申请的说明书和附加权利要求书意欲覆盖所有的修改、等同和替代的形式。
本说明书中的“一个实施例”,“实施例”,“一个具体实施例”等,表示所描述的实施例可以包括特定特征、结构或特性,但是每个实施例可以包括或可以不必然包括该特定特征、结构或特性。此外,这样的短语不一定指的是同一实施例。另外,在联系一个实施例描述特定特征、结构或特性的情况下,无论是否明确描述,可以认为本领域技术人员所知的范围内,这样的特征、结构或特性也与其他实施例有关。另外,应该理解的是,“在A,B和C的至少一个”这种形式所包括的列表中的条目中,可以包括如下可能的项目:(A),(B),(C),(A和B),(A和C),(B和C),或(A,B和C)。同样,“A,B或C中的至少一个”这种形式列出的项目可能意味着(A),(B),(C),(A和B),(A和C),(B和C)或(A,B和C)。
在一些情况下,所公开的实施例可以被实施为硬件、固件、软件或其任意组合。所公开的实施例也可以实现为携带或存储在一个或多个暂时的或者非暂时的机器可读(例如计算机可读)存储介质中的指令,该指令可以被一个或多个处理器执行。机器可读存储介质可以实施为用于以能够被机器读取的形式存储或者传输信息的存储装置、机构或其他物理结构(例如易失性或非易失性存储器、介质盘、或其他媒体其它物理结构装置)。
在附图中,一些结构或方法特征可以以特定的安排和/或排序显示。然而,优选地,这样的具体安排和/或排序并不是必要的。相反,在一些实施方案中,这样的特征可以以不同的方式和/或顺序排列,而不是如附图中所示。此外,特定的附图中的结构或方法特征中所包含的内容,不意味着暗示这种特征是在所有实施例是必须的,并且在一些实施方案中,可能不包括这些特征,或者可能将这些特征与其它特征相结合。
本申请实施例提供了一种追踪方案,该方案可以在关中断的情况下,将操作系统行为和/或程序运行行为的追踪结果写入缓存,以及,在开中断的情况下,从所述缓存中读取追踪结果并发送。由于本申请实施例可以在关中断的情况下,通过处理器将操作系统行为和/或程序运行行为的追踪结果写入缓存,而处理器将操作系统行为和/或程序运行行为的追踪结果写入缓存的速率通常大幅高于通过串口通讯等方式发送操作系统行为和/或程序运行行为的追踪结果的速率,故本申请实施例可以在关中断的情况下,快速地将操作系统行为和/或程序运行行为的追踪结果写入缓存,这样,可以有效缩短操作系统的最大关中断时间,进而可以有效提升操作系统和/或程序的性能。例如,本申请实施例可以在一定程度上避免因最大关中断时间被增加而导致操作系统行为受影响、进而导致操作系统出现错误的问题,又如,本申请实施例可以在一定程度上降低硬件设备的中断丢失率和数据丢失率;再如,本申请实施例可以在一定程度上提高任务或者程序的响应时间,进而使得任务或者程序在规定的时间内完成所要做的行为。
本申请实施例中,中断是计算机系统实时地处理内部或外部事件的一种内部机制,中断是指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程。具体地,当某种内部或外部事件发生时,将使得处理器暂停正在执行的程序,转去进行中断事件的处理。
开中断是指操作系统可以在连续的运行过程中断,转去进行中断事件的处理,具体地,开中断可以使处理器将响应硬件产生的异步中断,然而将无法保护代码临界段对应数据的安全性,也即异步中断容易导致代码临界段对应数据的破坏或者丢失。关中断是指关闭系统中断,不允许系统打断连续的运行过程;具体地,关中断可以使处理器无法响应硬件产生的异步中断,从而保护代码临界段对应数据的安全性,这样,虽然能够在一定程度上避免异步中断导致代码临界段对应数据的破坏或者丢失,但是会引起最大关中断时间的提升、进而降低操作系统的实时性;例如,最大关中断时间的提升可能会引起硬件设备的中断丢失,从而造成硬件设备的数据丢失;又如,最大关中断时间的提升也有可能造成任务或者程序的响应时间迟钝,导致任务或者程序在规定的时间内无法完成所要做的行为;再如,在有些情况下,最大关中断时间的提升还有可能导致操作系统出现错误等。
本申请实施例可以应用于操作系统和/或程序的追踪场景,操作系统的追踪场景的例子可以包括:嵌入式系统的追踪场景,可以理解,本申请实施例对于具体的应用场景不加以限制。
可选地,本申请实施例的操作系统可以包括:通用操作系统、或者实时操作系统,其中,通用操作系统注重每次执行的平均响应时间而不关心某次特定执行的响应时间,而实时操作系统除了要满足应用的功能需求以外,还要满足应用提出的实时性要求,可以理解,本申请实施例对于具体的操作系统不加以限制。
参照图1,示出了本申请实施例的一种追踪方法的应用环境的示意图,如图1所示,该应用环境可以包括:嵌入式设备101和调试设备102;其中,嵌入式设备101与调试设备102之间可以通过串口通讯方式和/或网络方式通信。
嵌入式设备101可以包括:处理器111、存储器112和接口113等,其中,处理器可以包括:CPU、或者微控制器(MCU,Micro Controller Unit)等,存储器112可以为机器可读存储介质,存储器112可以包括:只读存储器、随机存储器等,接口113可以包括:串口、网络接口等。
调试设备102上可以运行有调试器121,调试器121是运行在调试设备102上的集成开发环境,可以集编辑、汇编、编译、链接和调试环境于一体,支持低级汇编语言、C语言等,其可以依据追踪结果进行调试,并基于友好的图形用户界面向用户提供调试信息和/或结果。
在实际应用中,调试器121依据追踪结果进行调试的过程可以包括:对追踪结果进行解析,以得到追踪结果中包括的时间信息、任务运行信息和任务执行过的API,这样,可以依据踪结果中包括的时间信息、任务运行信息和任务执行过的API,得到调试信息,并显示在界面上,可选地,可以通过图形的形式显示该调试信息。
可选地,该调试信息可以包括时间轴面板,该时间轴面板可以描述任务和API的启动时间和停止时间,该时间轴面板的每一行可以显示每个任务的运行情况,时间轴上的时间可以按照从左到右的顺序增加。并且,还可以在时间轴面板上显示任务执行过的API。
可选地,该调试信息可以包括:分析面板,该分析面板可以描述一个API内发生了什么操作系统行为,可以反映API中所有操作系统行为的时间消耗,例如,可以显示API中每个操作系统行为消耗的时间占所有操作系统行为消耗的总时间的百分比。
嵌入式设备101上可以运行有操作系统。在本申请的一种可选实施例中,嵌入式设备101可以向调试设备102发送操作系统行为的追踪结果,以使调试设备102对所接收的追踪结果进行分析和显示。具体地,嵌入式设备101可以在关中断的情况下,通过处理器121将操作系统行为的追踪结果写入缓存,以及,在开中断的情况下,通过处理器121从所述缓存中读取追踪结果,并通过接口123向调试设备发送读取的追踪结果。
可以理解,图1只是本申请实施例的一种追踪方法的应用环境的示例,而不理解为本申请实施例的追踪方法的应用环境的限制,可以理解,本领域技术人员可以根据实际应用需求,确定本申请实施例的追踪方法的应用环境,例如,本申请实施例的追踪方法还可以应用于程序的追踪场景,以追踪程序的系统调用、信号产生、或者调用库函数的情况,本申请实施例对于追踪方法的具体应用环境不加以限制。
本申请实施例提供了一种追踪方法。
参照图2,示出了本申请的一种追踪方法实施例的流程图,具体可以包括如下步骤:
步骤201、在关中断的情况下,将操作系统行为和/或程序运行行为的追踪结果写入缓存;
步骤202、在开中断的情况下,从所述缓存中读取追踪结果并发送。
本申请实施例可以应用于操作系统和/或程序的追踪场景,且可以应用于追踪场景下的设备,如嵌入式设备、非嵌入式设备等,可以理解,本申请实施例对于操作系统和/或程序的具体追踪场景、以及应用的具体设备不加以限制。
在实际应用中,可以采用操作系统的追踪方式,获取操作系统行为的追踪结果。可选地,采用操作系统的追踪方式,获取操作系统行为的追踪结果的过程可以包括:在检测到操作系统的应用程序编程接口(API,Application Programming Interface)被调用时,对被调用的API对应的操作系统行为进行追踪,以得到操作系统行为的追踪结果。可以理解,本申请实施例对于操作系统行为的追踪结果对应的具体获取方式不加以限制。其中,操作系统的API可以为操作系统内核相关的API,操作系统的API的执行可以反映操作系统行为,因此,对被调用的API对应的操作系统行为进行追踪,可以得到操作系统行为的追踪结果。
在本申请的一种可选实施例中,上述操作系统行为可以包括:任务删除行为、任务创建行为、改变任务优先级行为、创建信号量行为、创建互斥锁行为等,可以理解,本申请实施例对于具体的操作系统行为不加以限制。
同理,可以采用程序的追踪方式,获取程序运行行为的追踪结果。可选地,采用程序的追踪方式,获取程序运行行为的追踪结果的过程可以包括:在检测到程序的API被调用时,对被调用的API对应的程序运行行为进行追踪,以得到程序运行行为的追踪结果。可选地,程序运行行为可以包括:程序进程对应的系统调用、信号产生、或者调用库函数的行为,可以理解,本申请实施例对于具体的程序运行行为不加以限制。
在本申请的一种可选实施例中,本申请实施例的追踪方法可以用于操作系统的追踪函数,该操作系统的追踪函数可以作为操作系统的API的子函数,执行步骤201,这样,可以实现对于被调用的API对应的操作系统行为的追踪。和/或,本申请实施例的追踪方法可以用于程序的追踪函数,该程序的追踪函数可以作为追踪已运行的程序进程,执行步骤201,这样,可以实现对于程序运行行为的追踪。
由于操作系统的API处于代码临界段,也即,操作系统的API一旦开始执行则不允许中断打入,故可以在检测到操作系统的API被调用、且对应的调用信息符合预置条件时,关中断。同理,可以在检测到程序的API被调用、且对应的调用信息符合预置条件时,关中断。
本申请实施例对于关中断的具体时机不加以限制。可选地,在所述在关中断的情况下,将操作系统行为的追踪结果写入缓存之前,可以在检测到操作系统的API被调用、且对应的调用信息符合预置条件时,关中断。在关中断关之后,处理器将无法响应硬件产生的异步中断,从而保护代码临界段对应数据的安全性,在一定程度上避免异步中断导致代码临界段对应数据的丢失。
可选地,上述预置条件可以包括:调用信息涉及的调用方和非调用方不同。例如,若调用信息为:A任务删除A任务,若调用信息涉及的调用方和非调用方相同,此种情况下的调用信息不符合预置条件。可选地,上述预置条件可以包括:调用信息涉及的调用方非空闲,例如,若调用信息为:A任务删除B任务,B任务,若B任务为空闲任务,则此种情况下的调用信息不符合预置条件。可以理解,本领域技术人员可以根据实际应用需求,确定关中断的具体时机,本申请实施例对于具体的预置条件、以及关中断的具体时机不加以限制。
步骤201可以在关中断的情况下,将操作系统行为和/或程序运行行为的追踪结果写入缓存。在实际应用中,可以通过处理器将操作系统行为和/或程序运行行为的追踪结果写入缓存,而处理器将操作系统行为和/或程序运行行为的追踪结果写入缓存的速率通常大幅高于通过串口通讯等方式发送操作系统行为和/或程序运行行为的追踪结果的速率,故本申请实施例可以在关中断的情况下,快速地将操作系统行为和/或程序运行行为的追踪结果写入缓存,这样,可以有效缩短操作系统的最大关中断时间,进而可以提高操作系统和/或程序的响应时间。
可选地,可以在设备的内存区建立例如队列、数组、或者链表的数据结构作为上述缓存,本申请实施例对于具体的缓存不加以限制。
在本申请的一种可选实施例中,写入缓存的追踪结果对应的具体格式可以为追踪指令的格式,例如,可以对多种操作系统行为信息进行组合,以得到追踪指令;进一步,可以将追踪指令写入缓存。可以理解,本申请实施例对于写入缓存的追踪结果对应的具体格式不加以限制。
在本申请的一种可选实施例中,可以在将操作系统行为和/或程序运行行为的追踪结果写入缓存后,开中断,以使步骤202在开中断的情况下,从所述缓存中读取追踪结果并发送。可选地,上述将操作系统行为和/或程序运行行为的追踪结果写入缓存可以包括:将操作系统的API对应所有操作系统行为的追踪结果写入缓存,和/或,将程序的API对应所有程序运行行为的追踪结果写入缓存。此种情况下,说明操作系统的API和/或程序的API被执行完毕,操作系统可以脱离代码临界段,因此可以开中断,可以理解,本申请实施例对于开中断的具体时机不加以限制。
步骤202可以在开中断的情况下,从所述缓存中读取追踪结果并发送。在实际应用中,可以按照缓存的特性进行追踪结果的读取。在本申请的一种应用示例中,上述缓存可以为队列,则可以按照队列的先进先出特性,进行追踪结果的写入和读取。
在实际应用中,可以采用串口通讯、网络通讯等方式,进行读取的追踪结果的发送。具体地,可以向对端设备发送读取的追踪结果,可选地,该对端设备可以为调试设备,该调试设备上可以运行有调试器,调试器可以是运行在调试设备上的集成开发环境,可以集编辑、汇编、编译、链接和调试环境于一体,支持低级汇编语言、C语言等,其可以基于友好的图形用户界面向用户提供调试服务。
在实际应用中,可以在操作系统的后台建立第一任务,并通过该第一任务执行步骤202在开中断的情况下,从所述缓存中读取追踪结果并发送的操作。可选地,该第一任务的优先级可以为预置优先级,以避免该第一任务对于前台任务等其他任务的影响。其中,本领域技术人员可以根据实际应用需求,确定上述预置优先级,例如,上述预置优先级可以为低于前台任务的优先级的优先级,本申请实施例对于具体的预置优先级不加以限制。
在本申请的一种可选实施例中,上述步骤202在开中断的情况下,从所述缓存中读取追踪结果并发送的过程,可以包括:在开中断的情况下,按照预置周期,从所述缓存中读取追踪结果并发送。其中,上述预置周期可由本领域技术人员根据实际应用需求确定,例如,上述预置周期的长度可以为10ms等数值。
在本申请的另一种可选实施例中,上述在开中断的情况下,按照预置周期,从所述缓存中读取追踪结果并发送的过程,具体可以包括:在开中断的情况下,从所述缓存中读取追踪结果并发送;在发送读取的追踪结果后,按照预置周期进入休眠状态。其中。休眠状态的持续时长可以为预置周期的长度,这样,在休眠结束后,可以继续执行在开中断的情况下,从所述缓存中读取追踪结果并发送的操作。
可以理解,上述在开中断的情况下,按照预置周期,从所述缓存中读取追踪结果并发送的方式只是作为缓存中追踪结果的读取时机的可选实施例,实际上,本领域技术人员可以根据实际应用需求,采用缓存中追踪结果的其他读取时机,例如,可以在操作系统的API和/或程序的API被执行完毕后,在开中断的情况下,从所述缓存中读取追踪结果等,本申请实施例对于缓存中追踪结果的具体读取时机不加以限制。
综上,本申请实施例的追踪方法,可以在关中断的情况下,通过处理器将操作系统行为和/或程序运行行为的追踪结果写入缓存,而处理器将操作系统行为和/或程序运行行为的追踪结果写入缓存的速率通常大幅高于通过串口通讯等方式发送操作系统行为和/或程序运行行为的追踪结果的速率,故本申请实施例可以在关中断的情况下,快速地将操作系统行为和/或程序运行行为的追踪结果写入缓存,这样,可以有效缩短操作系统的最大关中断时间,进而可以有效提升操作系统和/或程序的性能,例如,本申请实施例可以在一定程度上避免因最大关中断时间被增加而导致操作系统行为受影响、进而导致操作系统出现错误的问题。
参照图3,示出了本申请的一种追踪方法实施例的流程图,具体可以包括如下步骤:
步骤301、在检测到操作系统的API被调用、且对应的调用信息符合预置条件时,关中断;
步骤302、在关中断的情况下,对所述API对应的操作系统行为进行追踪,以得到操作系统行为的追踪结果;
步骤303、在关中断的情况下,将步骤302得到的操作系统行为的追踪结果写入缓存;
步骤304、在将操作系统行为的追踪结果写入缓存后,开中断;
步骤305、在开中断的情况下,从所述缓存中读取追踪结果并发送;
步骤306、在发送读取的追踪结果后,进入休眠状态。
在实际应用中,本申请实施例的追踪方法可以用于操作系统的追踪函数,该追踪函数可以作为操作系统的API的子函数,这样,可以在操作系统的API的执行过程中,通过步骤302实现对于被调用的API对应的操作系统行为的追踪,以及通过步骤303实现步骤302得到的追踪结果到缓存的写入。
在将步骤302得到的操作系统行为的追踪结果写入缓存后,说明操作系统的API被执行完毕,操作系统可以脱离代码临界段,因此可以通过步骤304开中断,可以理解,本申请实施例对于开中断的具体时机不加以限制。
步骤305可以在开中断的情况下,从所述缓存中读取追踪结果并发送,这样,可以避免通过串口通讯等方式发送操作系统行为的追踪结果的速率对于操作系统的最大关中断时间的影响。
为使本领域技术人员技术人员更好地理解本申请实施例,在此通过具体的示例说明本申请实施例的追踪方法,该示例涉及,对操作系统的任务删除行为进行追踪,假设通过任务删除API执行该任务删除行为,则可以在该任务删除API中设置任务删除追踪函数,该任务删除追踪函数用于追踪任务删除行为;参照图4,示出了本申请的一种追踪方法实施例的流程图,具体可以包括如下步骤:
步骤401、在检测到操作系统的API被调用、且对应的调用信息符合预置条件时,关中断;
可选地,步骤401对应的操作可以存在于操作系统的API中,具体地,在执行操作系统的API的过程中,可以首先判断对应的调用信息是否符合预置条件,若是,则可以关中断。
步骤402、在关中断的情况下,通过该任务删除追踪函数对任务删除API对应的任务删除行为进行追踪,以得到任务删除行为的追踪结果,并且,通过该任务删除追踪函数将任务删除行为的追踪结果写入缓存;
步骤403、在该任务删除追踪函数将任务删除行为的追踪结果写入缓存后,开中断;
步骤404、在开中断的情况下,通过后台任务从所述缓存中读取追踪结果并发送。
本申请实施例中,该任务删除追踪函数并没有直接将任务删除行为的追踪结果通过接口发送出去,而是将任务删除行为的追踪结果发送到缓存中,而将任务删除行为的追踪结果发送到缓存中的速度是非常快的,这样就不会长时间关中断,从而可以在一定程度上避免关中断影响到操作系统的实时性。
本申请实施例中,上述后台任务可用于从所述缓存中读取追踪结果并发送,在实际应用中,该后台任务的优先级可以为预置优先级,以避免该后台任务对于前台任务等其他任务的影响。作为一种示例,后台任务可以每10ms从缓存中读取所有的追踪结果,并通过接口发送出去。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些方框可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
本申请还提供了一种追踪装置。
参照图5,示出了本申请的一种追踪装置实施例的结构框图,该装置具体可以包括如下模块:
写缓存模块501,用于在关中断的情况下,将操作系统行为和/或程序运行行为的追踪结果写入缓存;
读缓存模块502,用于在开中断的情况下,从所述缓存中读取追踪结果;
发送模块503,用于在开中断的情况下,发送读取的追踪结果。
可选地,读缓存模块502可以在开中断的情况下,按照预置周期从所述缓存中读取追踪结果;
发送模块503可以在开中断的情况下,按照预置周期发送读取的追踪结果。
可选地,读缓存模块502和发送模块503可以在发送模块503发送读取的追踪结果后,按照预置周期进入休眠状态。
可选地,所述装置还可以包括:
开中断模块,用于在读缓存模块502在开中断的情况下,从所述缓存中读取追踪结果之前,在将操作系统行为和/或程序运行行为的追踪结果写入缓存后,开中断。
可选地,所述装置还可以包括:
关中断模块,用于在写缓存模块501在关中断的情况下,将操作系统行为和/或程序运行行为的追踪结果写入缓存之前,在检测到操作系统的API被调用、且对应的调用信息符合预置条件时,关中断。
可选地,所述装置还可以包括:
追踪模块,用于在写缓存模块501在关中断的情况下,将操作系统行为和/或程序运行行为的追踪结果写入缓存之前,在检测到操作系统和/或程序的API被调用时,对被调用的API对应的操作系统行为和/或程序运行行为进行追踪,以得到操作系统行为和/或程序运行行为的追踪结果。
对于图5所示装置实施例而言,由于其与图1至图3所示方法实施例基本相似,所以描述的比较简单,相关之处参见图1至图3所示方法实施例的部分说明即可。
综上,本申请实施例的追踪装置,可以在关中断的情况下,通过处理器将操作系统行为和/或程序运行行为的追踪结果写入缓存,而处理器将操作系统行为和/或程序运行行为的追踪结果写入缓存的速率通常大幅高于通过串口通讯等方式发送操作系统行为和/或程序运行行为的追踪结果的速率,故本申请实施例可以在关中断的情况下,快速地将操作系统行为和/或程序运行行为的追踪结果写入缓存,这样,可以有效缩短操作系统的最大关中断时间,进而可以有效提升操作系统和/或程序的性能,例如,本申请实施例可以在一定程度上避免因最大关中断时间被增加而导致操作系统行为受影响、进而导致操作系统出现错误的问题。
本申请实施例的实施例可被实现为使用任意适当的硬件和/或软件进行想要的配置的系统或设备。图6示意性地示出了可被用于实现本申请中所述的各个实施例的示例性设备700。
对于一个实施例,图6示出了示例性设备700,该设备700可以包括:一个或多个处理器702、与处理器702中的至少一个耦合的系统控制模块(芯片组)704、与系统控制模块704耦合的系统存储器706、与系统控制模块704耦合的非易失性存储器(NVM)/存储设备708、与系统控制模块704耦合的一个或多个输入/输出设备710,以及与系统控制模块706耦合的网络接口712。该系统存储器706可以包括:指令762,该指令762可被一个或多个处理器702执行。
处理器702可包括一个或多个单核或多核处理器,处理器702可包括通用处理器或专用处理器(例如图形处理器、应用程序处理器、基带处理器等)的任意组合。在一些实施例中,设备700能够作为本申请实施例中所述的服务器、目标设备、无线设备等。
在一些实施例中,设备700可包括具有指令的一个或多个机器可读介质(例如,系统存储器706或NVM/存储设备708)以及与该一个或多个机器可读介质相合并被配置为执行指令、以实现前述设备包括的模块、从而执行本申请实施例中所述的动作的一个或多个处理器702。
一个实施例的系统控制模块704可包括任何适合的接口控制器,用于提供任何适合的接口给处理器702中的至少一个和/或与系统控制模块704通信的任意适合的设备或部件。
一个实施例的系统控制模块704可包括一个或多个存储器控制器,用于提供接口给系统存储器706。存储器控制器可以是硬件模块、软件模块和/或固件模块。
一个实施例的系统存储器706可被用于加载和存储数据和/或指令762。对于一个实施例,系统存储器706可包括任何适合的易失性存储器,例如,适合的DRAM(动态随机存取存储器)。在一些实施例中,系统存储器706可包括:双倍数据速率类型四同步动态随机存取存储器(DDR4SDRAM)。
一个实施例的系统控制模块704可包括一个或多个输入/输出控制器,以向NVM/存储设备708及(一个或多个)输入/输出设备710提供接口。
一个实施例的NVM/存储设备708可被用于存储数据和/或指令782。NVM/存储设备708可包括任何适合的非易失性存储器(例如闪存等)和/或可包括任何适合的(一个或多个)非易失性存储设备,例如,一个或多个硬盘驱动器(HDD)、一个或多个光盘(CD)驱动器和/或一个或多个数字通用光盘(DVD)驱动器等。
NVM/存储设备708可包括在物理上是设备700被安装在其上的设备的一部分的存储资源,或者其可被该设备访问而不必作为该设备的一部分。例如,NVM/存储设备708可经由网络接口712通过网络和/或通过输入/输出设备710进行访问。
一个实施例的(一个或多个)输入/输出设备710可为设备700提供接口以与任意其他适当的设备通信,输入/输出设备710可以包括通信组件、音频组件、传感器组件等。
一个实施例的网络接口712可为设备700提供接口以通过一个或多个网络和/或与任何其他适合的设备通信,设备700可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信,例如接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合进行无线通信。
对于一个实施例,处理器702中的至少一个可与系统控制模块704的一个或多个控制器(例如,存储器控制器)的逻辑封装在一起。对于一个实施例,处理器702中的至少一个可与系统控制模块704的一个或多个控制器的逻辑封装在一起以形成系统级封装(SiP)。对于一个实施例,处理器702中的至少一个可与系统控制模块704的一个或多个控制器的逻辑集成在同一新品上。对于一个实施例,处理器702中的至少一个可与系统控制模块704的一个或多个控制器的逻辑集成在同一芯片上以形成片上系统(SoC)。
在各个实施例中,设备700可以包括但不限于:台式计算设备或移动计算设备(例如,膝上型计算设备、手持计算设备、平板电脑、上网本等)等计算设备。在各个实施例中,设备700可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,设备700可以包括一个或多个摄像机、键盘、液晶显示器(LCD)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(ASIC)和扬声器。
其中,如果显示器包括触摸面板,显示屏可以被实现为触屏显示器,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
本申请实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在设备时,可以使得该计算设备执行本申请实施例中各方法的指令(instructions)。
在一个示例中提供了一种设备,包括:一个或多个处理器;和,其上存储的一个或多个机器可读介质中的指令,由所述一个或多个处理器执行时,使得所述设备执行如本申请实施例中的方法。
在一个示例中还提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得设备执行如本申请实施例中的方法。
以上对本申请所提供的一种追踪方法、一种追踪装置、一种设备、以及一个或多个机器可读介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (14)
1.一种追踪方法,其特征在于,应用于操作系统和/或程序的追踪函数,所述追踪函数为操作系统和/或程序的API的子函数,所述方法包括:
在关中断的情况下,将操作系统行为和/或程序运行行为的追踪结果写入缓存;在API被调用的情况下关中断;所述API用于执行所述操作系统行为和/或程序运行行为;在所述API被执行完毕、且将所述追踪结果写入缓存的情况下开中断;
在开中断的情况下,从所述缓存中读取追踪结果并发送,以使接收端依据追踪结果进行调试。
2.根据权利要求1所述的方法,其特征在于,所述在开中断的情况下,从所述缓存中读取追踪结果并发送,包括:
在开中断的情况下,按照预置周期,从所述缓存中读取追踪结果并发送。
3.根据权利要求2所述的方法,其特征在于,所述在开中断的情况下,按照预置周期,从所述缓存中读取追踪结果并发送,包括:
在开中断的情况下,从所述缓存中读取追踪结果并发送;
在发送读取的追踪结果后,按照预置周期进入休眠状态。
4.根据权利要求1至3中任一所述的方法,其特征在于,在所述在开中断的情况下,从所述缓存中读取追踪结果并发送之前,所述方法还包括:
在将操作系统行为和/或程序运行行为的追踪结果写入缓存后,开中断。
5.根据权利要求1至3中任一所述的方法,其特征在于,在所述在关中断的情况下,将操作系统行为和/或程序运行行为的追踪结果写入缓存之前,所述方法还包括:
在检测到操作系统和/或程序的API被调用、且对应的调用信息符合预置条件时,关中断。
6.根据权利要求1至3中任一所述的方法,其特征在于,在所述在关中断的情况下,将操作系统行为和/或程序运行行为的追踪结果写入缓存之前,所述方法还包括:
在检测到操作系统和/或程序的API被调用时,对被调用的API对应的操作系统行为和/或程序运行行为进行追踪,以得到操作系统行为和/或程序运行行为的追踪结果。
7.一种追踪装置,其特征在于,应用于操作系统和/或程序的追踪函数,所述追踪函数为操作系统和/或程序的API的子函数,所述装置包括:
写缓存模块,用于在关中断的情况下,将操作系统行为和/或程序运行行为的追踪结果写入缓存;在API被调用的情况下关中断;所述API用于执行所述操作系统行为和/或程序运行行为;在所述API被执行完毕、且将所述追踪结果写入缓存的情况下开中断;
读缓存模块,用于在开中断的情况下,从所述缓存中读取追踪结果;
发送模块,用于在开中断的情况下,发送读取的追踪结果,以使接收端依据追踪结果进行调试。
8.根据权利要求7所述的装置,其特征在于,所述读缓存模块在开中断的情况下,按照预置周期从所述缓存中读取追踪结果;
所述发送模块在开中断的情况下,按照预置周期发送读取的追踪结果。
9.根据权利要求8所述的装置,其特征在于,所述读缓存模块和所述发送模块在所述发送模块发送读取的追踪结果后,按照预置周期进入休眠状态。
10.根据权利要求7至9中任一所述的装置,其特征在于,所述装置还包括:
开中断模块,用于在所述读缓存模块在开中断的情况下,从所述缓存中读取追踪结果之前,在将操作系统行为和/或程序运行行为的追踪结果写入缓存后,开中断。
11.根据权利要求7至9中任一所述的装置,其特征在于,所述装置还包括:
关中断模块,用于在所述写缓存模块在关中断的情况下,将操作系统行为和/或程序运行行为的追踪结果写入缓存之前,在检测到操作系统的API被调用、且对应的调用信息符合预置条件时,关中断。
12.根据权利要求7至9中任一所述的装置,其特征在于,所述装置还包括:
追踪模块,用于在所述写缓存模块在关中断的情况下,将操作系统行为和/或程序运行行为的追踪结果写入缓存之前,在检测到操作系统和/或程序的API被调用时,对被调用的API对应的操作系统行为和/或程序运行行为进行追踪,以得到操作系统行为和/或程序运行行为的追踪结果。
13.一种电子设备,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如权利要求1至6中一个或多个所述的方法。
14.一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得设备执行如权利要求1至6中一个或多个所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710500931.1A CN109144844B (zh) | 2017-06-27 | 2017-06-27 | 追踪方法、装置、设备和机器可读介质 |
PCT/CN2018/091990 WO2019001320A1 (zh) | 2017-06-27 | 2018-06-20 | 追踪方法、装置、设备和机器可读介质 |
US16/726,669 US11507413B2 (en) | 2017-06-27 | 2019-12-24 | Tracking method, apparatus, device, and machine-readable medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710500931.1A CN109144844B (zh) | 2017-06-27 | 2017-06-27 | 追踪方法、装置、设备和机器可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109144844A CN109144844A (zh) | 2019-01-04 |
CN109144844B true CN109144844B (zh) | 2023-01-31 |
Family
ID=64741924
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710500931.1A Active CN109144844B (zh) | 2017-06-27 | 2017-06-27 | 追踪方法、装置、设备和机器可读介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11507413B2 (zh) |
CN (1) | CN109144844B (zh) |
WO (1) | WO2019001320A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109815140A (zh) * | 2019-01-05 | 2019-05-28 | 咪付(广西)网络技术有限公司 | 一种嵌入式c语言实现的自动化测试系统及方法 |
CN111324476A (zh) * | 2020-02-20 | 2020-06-23 | Oppo广东移动通信有限公司 | 接口调用方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1252591C (zh) * | 2001-10-31 | 2006-04-19 | 精工爱普生株式会社 | 动态类封装 |
CN102135906B (zh) * | 2011-03-18 | 2013-03-13 | 深圳市民德电子科技有限公司 | 面向嵌入式实时操作系统的功耗控制方法及系统 |
CN103970679A (zh) * | 2014-04-24 | 2014-08-06 | 华中科技大学 | 一种动态缓存污染防治系统及方法 |
CN102999731B (zh) * | 2012-11-20 | 2015-09-30 | 成都卫士通信息产业股份有限公司 | 一种基于双核处理器的安全通信方法及系统 |
CN102289361B (zh) * | 2010-06-21 | 2016-07-06 | Arm有限公司 | 对追踪数据流的关联 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5485574A (en) | 1993-11-04 | 1996-01-16 | Microsoft Corporation | Operating system based performance monitoring of programs |
US6473727B1 (en) | 1998-03-06 | 2002-10-29 | Lsi Logic Corporation | Processor development systems |
US6077312A (en) | 1998-05-06 | 2000-06-20 | International Business Machines Corporation | Apparatus, program product and method of debugging utilizing a context sensitive breakpoint |
CN1113296C (zh) * | 1999-03-05 | 2003-07-02 | 英业达股份有限公司 | 硬件测试装置和增加硬件测试速度的方法 |
US6519718B1 (en) | 2000-02-18 | 2003-02-11 | International Business Machines Corporation | Method and apparatus implementing error injection for PCI bridges |
US6785893B2 (en) * | 2000-11-30 | 2004-08-31 | Microsoft Corporation | Operating system event tracker having separate storage for interrupt and non-interrupt events and flushing the third memory when timeout and memory full occur |
US6823414B2 (en) * | 2002-03-01 | 2004-11-23 | Intel Corporation | Interrupt disabling apparatus, system, and method |
CN1577261B (zh) * | 2003-06-30 | 2010-04-28 | 中兴通讯股份有限公司 | 一种对单片机封装的系统 |
CN100349138C (zh) * | 2003-08-08 | 2007-11-14 | 倚天资讯股份有限公司 | 非挥发性存储器存取系统及其循环使用存取空间方法 |
US8136096B1 (en) * | 2004-07-23 | 2012-03-13 | Green Hills Software, Inc. | Backward post-execution software debugger |
US7536605B2 (en) | 2005-05-25 | 2009-05-19 | Alcatel-Lucent Usa Inc. | Injection of software faults into an operational system |
US8453143B2 (en) | 2007-09-19 | 2013-05-28 | Vmware, Inc. | Reducing the latency of virtual interrupt delivery in virtual machines |
US20090113111A1 (en) * | 2007-10-30 | 2009-04-30 | Vmware, Inc. | Secure identification of execution contexts |
US8135894B1 (en) | 2009-07-31 | 2012-03-13 | Altera Corporation | Methods and systems for reducing interrupt latency by using a dedicated bit |
CN102346708B (zh) | 2010-08-03 | 2014-07-16 | 中兴通讯股份有限公司 | 一种调试器及其调试方法 |
US8752027B2 (en) | 2011-09-14 | 2014-06-10 | Microsoft Corporation | Injecting faults into program for testing software |
US9075639B1 (en) | 2012-10-23 | 2015-07-07 | Altera Corporation | Systems and methods for handling interrupts during software design simulation |
CN103064815B (zh) * | 2012-12-29 | 2015-09-02 | 广东志成冠军集团有限公司 | 一种单spi总线控制多can接口的控制方法 |
US9262198B2 (en) | 2013-08-26 | 2016-02-16 | Vmware, Inc. | CPU scheduler configured to support latency sensitive virtual machines |
EP2866107B1 (de) * | 2013-10-25 | 2020-12-09 | Siemens Aktiengesellschaft | Verfahren zum Wiedergeben des Ablaufs eines Programms eines Automatisierungsgerätes |
CN104077224B (zh) * | 2014-07-04 | 2017-01-04 | 用友网络科技股份有限公司 | 软件功能分析系统与方法 |
CN105468510A (zh) * | 2014-09-05 | 2016-04-06 | 北京畅游天下网络技术有限公司 | 对软件质量进行评估与追踪的方法和系统 |
US20180113764A1 (en) * | 2016-10-24 | 2018-04-26 | Microsoft Technology Licensing, Llc | Hypervisor Based Watchdog Timer |
-
2017
- 2017-06-27 CN CN201710500931.1A patent/CN109144844B/zh active Active
-
2018
- 2018-06-20 WO PCT/CN2018/091990 patent/WO2019001320A1/zh active Application Filing
-
2019
- 2019-12-24 US US16/726,669 patent/US11507413B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1252591C (zh) * | 2001-10-31 | 2006-04-19 | 精工爱普生株式会社 | 动态类封装 |
CN102289361B (zh) * | 2010-06-21 | 2016-07-06 | Arm有限公司 | 对追踪数据流的关联 |
CN102135906B (zh) * | 2011-03-18 | 2013-03-13 | 深圳市民德电子科技有限公司 | 面向嵌入式实时操作系统的功耗控制方法及系统 |
CN102999731B (zh) * | 2012-11-20 | 2015-09-30 | 成都卫士通信息产业股份有限公司 | 一种基于双核处理器的安全通信方法及系统 |
CN103970679A (zh) * | 2014-04-24 | 2014-08-06 | 华中科技大学 | 一种动态缓存污染防治系统及方法 |
Non-Patent Citations (2)
Title |
---|
"MQX操作系统启动流程剖析";蒋建武 等;《福州大学学报(自然科学版)》;20160406;第44卷(第2期);202-206 * |
"System interrupt"s automation of cycle setting";Li Mengya 等;《2016 International Conference on Computational Science and Computational Intelligence》;20170320;1430-1431 * |
Also Published As
Publication number | Publication date |
---|---|
US20200133714A1 (en) | 2020-04-30 |
US11507413B2 (en) | 2022-11-22 |
WO2019001320A1 (zh) | 2019-01-03 |
CN109144844A (zh) | 2019-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6333965B2 (ja) | ウェイクロック使用を追跡する技術 | |
TWI510913B (zh) | 測試裝置及其測試方法 | |
JP5784633B2 (ja) | グラフィック処理装置の間のポリシーベースの切り換え | |
US9170912B1 (en) | System and methods for power and energy modeling in computing devices using system call tracing | |
US9268627B2 (en) | Processor hang detection and recovery | |
CN109064538B (zh) | 视图渲染方法、装置、存储介质及智能终端 | |
KR20140144250A (ko) | 단말 디바이스 및 이를 동작시키는 방법 | |
JP4678396B2 (ja) | 仮想マシンモニタをモニタするコンピュータとその方法、および仮想マシンモニタモニタプログラム | |
US10152294B2 (en) | Mobile device and method of running two platform systems or applications thereon | |
CN104866416B (zh) | 实现应用程序性能分析的方法和装置 | |
US11954520B2 (en) | Micro kernel scheduling method and apparatus | |
WO2019001334A1 (zh) | 一种栈溢出处理的方法及装置 | |
US20170082688A1 (en) | Debugging system and method | |
CN109144844B (zh) | 追踪方法、装置、设备和机器可读介质 | |
WO2020191549A1 (zh) | 一种soc芯片、确定热点函数的方法及终端设备 | |
US9372773B2 (en) | User-level hardware branch records | |
CN110990243A (zh) | 卡顿分析方法、装置、存储介质和计算设备 | |
US9354679B2 (en) | System and method for causing reduced power consumption associated with thermal remediation | |
CN114064236A (zh) | 任务执行方法、装置、设备和存储介质 | |
CN107609120B (zh) | 日志信息上报方法、装置及存储介质、adsp和终端 | |
US11544092B2 (en) | Model specific register (MSR) instrumentation | |
KR101772547B1 (ko) | 컴퓨팅 디바이스에서의 전력 소비 감축 | |
CN104714806A (zh) | 基于人机界面系统的脚本处理方法及装置 | |
US20150212569A1 (en) | User space based performance state switching of a processor of a data processing device | |
CN104598008A (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 |