CN113051151A - 一种任务跟踪方法、装置、设备和计算机可读存储介质 - Google Patents

一种任务跟踪方法、装置、设备和计算机可读存储介质 Download PDF

Info

Publication number
CN113051151A
CN113051151A CN201911383341.0A CN201911383341A CN113051151A CN 113051151 A CN113051151 A CN 113051151A CN 201911383341 A CN201911383341 A CN 201911383341A CN 113051151 A CN113051151 A CN 113051151A
Authority
CN
China
Prior art keywords
task
context environment
tracking
target
context
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
Application number
CN201911383341.0A
Other languages
English (en)
Inventor
李云鹤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201911383341.0A priority Critical patent/CN113051151A/zh
Publication of CN113051151A publication Critical patent/CN113051151A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context

Abstract

本发明公开了一种任务跟踪方法、装置、设备和计算机可读存储介质。该方法包括:创建包含目标任务的上下文环境;在启动所述上下文环境后,将预先设置的任务跟踪补丁设置到所述上下文环境中;在所述上下文环境中执行所述目标任务的过程中,通过所述任务跟踪补丁对所述目标任务进行跟踪。本发明利用猴子补丁的方式,将任务跟踪补丁动态设置到包含目标任务的上下文环境中,在不修改目标任务的程序代码的前提下,为目标任务的程序代码提供可以跟踪目标任务执行的任务跟踪补丁,通过任务跟踪补丁对目标任务进行跟踪,不会影响目标任务的执行。

Description

一种任务跟踪方法、装置、设备和计算机可读存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种任务跟踪方法、装置、设备和计算机可读存储介质。
背景技术
在JavaScript开发中,跟踪任务的执行是常用操作。在调试任务的程序代码时,如果任务的程序代码很大,那么通过跟踪任务的执行过程,如跟踪函数的调用过程,可以很容易的发现程序代码中出现的问题。
目前,对任务的执行过程进行跟踪,需要对任务的程序代码进行修改,在任务的程序代码中添加跟踪函数。然而,这种修改程序代码的方式,代码侵入性较大,容易导致在程序代码运行时出现程序异常。尤其是在对异步任务进行跟踪时,由于异步任务的程序代码复杂度较大,在修改程序代码之后,使得异步任务的程序代码的可读性差,容易忽视程序代码中的错误,导致运行程序代码时出现程序异常的问题。
发明内容
本发明的主要目的在于提供一种任务跟踪方法、装置、设备和计算机可读存储介质,以解决现有的任务跟踪方式需要对任务的程序代码进行修改,容易导致运行程序代码时出现程序异常的问题。
针对上述技术问题,本发明是通过以下技术方案来实现的:
本发明提供了一种任务跟踪方法,包括:创建包含目标任务的上下文环境;在启动所述上下文环境后,将预先设置的任务跟踪补丁设置到所述上下文环境中;在所述上下文环境中执行所述目标任务的过程中,通过所述任务跟踪补丁对所述目标任务进行跟踪。
其中,所述将预设的任务跟踪补丁设置到所述上下文环境中,包括:将所述任务跟踪补丁传入所述上下文环境的预设位置,或者,将所述上下文环境中的目标任务替换为预先设置的自定义任务;其中,在所述自定义任务中包括所述目标任务的程序代码以及位于所述预设位置的所述任务跟踪补丁。
其中,所述创建包含目标任务的上下文环境,包括:调用父上下文环境的fork方法,创建包含目标任务的上下文环境;其中,所述父上下文环境为根上下文环境或者调用所述目标任务的第一任务所属的上下文环境。
其中,所述将预设的任务跟踪补丁设置到所述上下文环境中,包括:如果所述目标任务和所述第一任务为同步任务,则调用所述上下文环境的run方法,将所述任务跟踪补丁传入所述上下文环境的预设位置或者将所述上下文环境中的目标任务替换为所述自定义任务;如果所述目标任务和所述第一任务为异步任务,则通过所述上下文环境的所述父上下文环境将所述任务跟踪补丁传入所述上下文环境的预设位置或者将所述上下文环境中的目标任务替换为所述自定义任务;所述上下文环境是由所述父上下文创建的,并且所述上下文环境中的任务跟踪补丁和所述父上下文环境中的任务跟踪补丁相同。
其中,所述启动所述上下文环境,包括:调用所述上下文环境的run方法,启动所述子上下文环境,以便在执行所述目标任务之后,返回所述目标任务的执行结果;或者,调用所述上下文环境的runguarded方法,启动所述子上下文环境,以便在执行所述目标任务之后,返回所述目标任务的执行结果以及在所述目标任务执行过程中出现的异常信息。
其中,所述预设位置为所述目标任务的程序代码之前的代码位置和/或所述目标任务的程序代码之后的代码位置。
其中,在所述任务跟踪补丁对应的程序代码中包括:钩子函数;其中,所述钩子函数用于监测所述目标任务在执行过程中发生的目标事件;所述通过所述任务跟踪补丁对所述目标任务进行跟踪,包括:在所述上下文环境中执行所述目标任务的过程中,如果所述钩子函数监测到所述目标事件发生,则执行预先为所述钩子函数对应设置的操作。
本发明还提供了一种任务跟踪装置,包括:创建模块,用于创建包含目标任务的上下文环境;设置模块,用于在启动所述上下文环境后,将预先设置的任务跟踪补丁设置到所述上下文环境中;跟踪模块,用于在所述上下文环境中执行所述目标任务的过程中,通过所述任务跟踪补丁对所述目标任务进行跟踪。
本发明还提供了一种任务跟踪设备,所述任务跟踪设备包括处理器、存储器;所述处理器用于执行所述存储器中存储的任务跟踪程序,以实现上述任一项所述的任务跟踪方法。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任一项所述的任务跟踪方法。
本发明有益效果如下:
本发明实施例利用猴子补丁的方式,将任务跟踪补丁动态设置到包含目标任务的上下文环境中,在不修改目标任务的程序代码的前提下,为目标任务的程序代码提供可以跟踪目标任务执行的任务跟踪补丁,通过任务跟踪补丁对目标任务进行跟踪,既不会影响目标任务的执行,也因为省去了修改任务代码的工作而减少了工作量。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明一实施例的任务跟踪方法的流程图;
图2是根据本发明一实施例的上下文环境的结构示意图;
图3是根据本发明一实施例的任务跟踪装置的结构图;
图4是根据本发明一实施例的任务跟踪设备的结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,以下结合附图及具体实施例,对本发明作进一步地详细说明。
根据本发明的实施例,提供了一种任务跟踪方法。如图1所示,为根据本发明一实施例的任务跟踪方法的流程图。
步骤S110,创建包含目标任务的上下文环境。
该目标任务,是指待调试的任务。
上下文环境,也可以称作执行上下文,是JavaScript代码的运行环境。创建包含目标任务的上下文环境是指,在创建的上下文环境中包括目标任务的程序代码,或者指向目标任务的程序代码的指针。
在本实施例中,上下文环境为其父上下文环境的子上下文环境。具体的,调用父上下文环境的fork方法,创建包含目标任务的上下文环境;其中,所述父上下文环境为根上下文环境或者调用所述目标任务的第一任务所属的上下文环境。
步骤S120,在启动所述上下文环境后,将预先设置的任务跟踪补丁设置到所述上下文环境中。
启动所述上下文环境,包括:通过调用所述上下文环境的run方法,启动所述子上下文环境;或者,通过调用所述上下文环境的runguarded方法,启动所述子上下文环境。
任务跟踪补丁,用于在目标任务执行时,对目标任务的执行过程进行跟踪。设置到上下文环境中的任务跟踪补丁可以是任务跟踪补丁的程序代码,也可以是指向任务跟踪补丁的程序代码的指针。在本实施例中,通过猴子补丁的方式,将任务跟踪补丁动态设置到上下文环境中。
具体而言:在启动上下文环境后,将所述任务跟踪补丁传入所述上下文环境的预设位置,或者,将所述上下文环境中的目标任务替换为预先设置的自定义任务;其中,在所述自定义任务中包括所述目标任务的程序代码以及位于所述预设位置的所述任务跟踪补丁。其中:
如果所述目标任务和所述第一任务为同步任务,则调用所述上下文环境的run方法,将所述任务跟踪补丁传入所述上下文环境的预设位置或者将所述上下文环境中的目标任务替换为所述自定义任务;
如果所述目标任务和所述第一任务为异步任务,则通过所述上下文环境的父上下文环境将所述任务跟踪补丁传入所述上下文环境的预设位置或者将所述上下文环境中的目标任务替换为所述自定义任务。所述上下文环境是由所述父上下文创建的,并且所述上下文环境中的任务跟踪补丁和所述父上下文环境中的任务跟踪补丁相同。进一步地,异步任务是指作为调用者的任务在调用发出后不能立刻得到结果,作为被调用者的任务在调用处理完成后,通过状态、通知或者回调的方式,将结果通知调用者。这样,在本实施例中,作为调用者的第一任务所属的父上下文环境创建包括目标任务的子上下文环境,获取父上下文环境中的任务跟踪补丁,将该任务跟踪补丁传入子上下文环境的预设位置或者,构建自定义任务,并且将所述子上下文环境中的目标任务替换为所述自定义任务。
在本实施例中,所述预设位置为所述目标任务的程序代码之前的代码位置和/或所述目标任务的程序代码之后的代码位置。例如图2所示,在上下文环境中至少包括顺次执行的三部分程序代码,第一部分为任务跟踪补丁的程序代码,第二部分为目标任务的程序代码,第三部分为任务跟踪补丁的程序代码,这样可以避免修改目标任务的程序代码。该三部分程序代码的执行顺序为第一部分的程序代码,第二部分的程序代码,第三部分的程序代码。
在本实施例中,在所述任务跟踪补丁对应的程序代码中包括:钩子函数;其中,所述钩子函数用于监测所述目标任务在执行过程中发生的目标事件。该目标事件是指调试过程中研发人员关注的事件。例如:目标事件为内存越界。
步骤S130,在所述上下文环境中执行所述目标任务的过程中,通过所述任务跟踪补丁对所述目标任务进行跟踪。
在所述上下文环境中执行所述目标任务的过程中,如果所述钩子函数监测到所述目标事件发生,则执行预先为所述钩子函数对应设置的操作。
为钩子函数对应设置的操作,包括但不限于:弹出目标事件对应的提示信息,弹出目标事件的事件信息,对发生目标事件执行合法性校验。提示信息例如是:当前任务正在读取A文件。事件信息例如是:该目标事件发生的起止时间。合法性校验例如是:目标事件为任务修改系统文件,该目标事件为非法操作。
在本实施例中,调用所述上下文环境的run方法,启动所述上下文环境,以便可以在执行所述目标任务之后,返回所述目标任务的执行结果;调用所述上下文中的runguarded方法,启动所述上下文环境,以便可以在执行所述目标任务之后,返回所述目标任务的执行结果以及在所述目标任务执行过程中出现的异常信息。该异常信息包括但不限于:代码错误。
在本实施例中,利用猴子补丁的方式,将任务跟踪补丁动态设置到包含目标任务的上下文环境中,在不修改目标任务的程序代码的前提下,为目标任务的程序代码提供可以跟踪目标任务执行的任务跟踪补丁,通过任务跟踪补丁对目标任务进行跟踪,不会影响目标任务的执行。
在本实施例中,单独为目标任务创建上下文环境,使得目标任务和其他任务相互隔离,从而可以在上下文环境中设置用于跟踪单独目标任务执行的任务跟踪补丁,使得任务跟踪不受异步任务的执行流程影响。
下面对创建包含目标任务的上下文环境进行进一步地描述。
在初始化阶段,创建一个根上下文环境。该根上下文环境可以作为父上下文环境,来创建包含目标任务的子上下文环境。当然,该子上下文环境还可以作为其他上下文环境的父上下文环境,该子上下文环境的子上下文环境可以是目标任务调用的第二任务所属的上下文环境。
在本实施例中,各个上下文环境的结构体相同。进一步地,父上下文环境和子上下文环境的结构体相同。
在上下文环境中,至少包括以下内容:current静态属性(getter)、name静态属性、fork方法、run方法、runGuarded方法和wrap方法。
该current静态属性,用于表示当前上下文环境。
该name静态属性,用于表示当前上下文环境的名称。
该fork方法,可以用于创建当前上下文环境的子上下文环境。也即是说,该fork方法通过复制当前上下文环境,创建当前上下文环境的子上下文环境,使当前上下文环境成为新创建的子上下文环境的父上下文环境。
该run方法,可以用于启动并运行当前上下文环境以及返回执行结果。进一步地,在运行当前上下文环境过程中,如果当前上下文环境中的函数被当前上下文环境的父上下文环境调用,在执行回调之后,通过该run方法恢复到父上下文环境。
该runGuarded方法,用于启动并运行当前上下文环境以及返回执行结果和异常信息。runGuarded方法与run方法类似,两者的不同之处在于,runGuarded方法会捕获目标任务运行时出现的异常。
该wrap方法,可以用于将当前上下文环境及其父上下文环境进行绑定。进一步地,因为各个上下文环境的结构体相同,可以通过子上下文环境中的wrap方法更改该子上下文环境绑定的父上下文环境。
在创建包含目标任务的上下文环境之后,利用该上下文环境的run方法,向该上下文环境中传入自定义任务。在将自定义任务传入该上下文环境之后,使用自定义任务替换原有的目标任务。进一步地,可以利用临时变量保存目标任务;创建中间变量,该中间变量接收自定义任务;通过中间变量将自定义任务赋值到临时变量保存目标任务的位置。当然,也可以利用该上下文环境的run方法,向该上下文环境中传入任务跟踪补丁。在将任务跟踪补丁传入该上下文环境之后,将任务跟踪补丁传递到预设位置。
如果目标任务和另一任务为同步任务,则运行目标任务所在的上下文环境即可,该上下文环境中的任务跟踪补丁将对目标任务的执行进行跟踪。
如果目标任务和另一任务为异步任务,则在运行目标任务所在的上下文环境的过程中,会存在上下文切换动作。如果目标任务所在的上下文环境为子上下文环境,另一任务所在的上下文环境为父上下文环境,则需要通过子上下环境的run方法在目标任务执行完成之后,将子上下文恢复到第一任务所在的父上下文环境,并将目标任务的执行结果返回该父上下文环境。如果目标任务所在的上下文环境为父上下文环境,另一任务所在的上下文环境为子上下文环境,则在从子上下文环境恢复到父上下文环境时,接收子上下文环境返回的执行结果。每个上下文环境中的任务跟踪补丁仅用于跟踪该上下文环境中的任务的执行。
在进行异步任务跟踪时,由于每个任务对应一个上下文环境,而且在每个上下文环境中设置用于对该上下文环境中的任务进行跟踪的任务跟踪补丁,得到各个异步任务相互隔离,从而在运行一个上下文环境时,该上下文环境中的任务跟踪补丁能够跟踪对该上下文环境中执行的任务,不受异步任务的执行流程影响,也不依赖于异步任务的执行流程。
本发明实施例还提供了一种任务跟踪装置。如图3所示,为根据本发明一实施例的任务跟踪装置的结构图。
该任务跟踪装置,包括:
创建模块310,用于创建包含目标任务的上下文环境。
设置模块320,用于在启动所述上下文环境后,将预先设置的任务跟踪补丁设置到所述上下文环境中。
跟踪模块330,用于在所述上下文环境中执行所述目标任务的过程中,通过所述任务跟踪补丁对所述目标任务进行跟踪。
其中,所述设置模块320,进一步用于:将所述任务跟踪补丁传入所述上下文环境的预设位置,或者,将所述上下文环境中的目标任务替换为预先设置的自定义任务;其中,在所述自定义任务中包括所述目标任务的程序代码以及位于所述预设位置的所述任务跟踪补丁。
其中,所述创建模块310,进一步用于:调用父上下文环境的fork方法,创建包含目标任务的上下文环境;其中,所述父上下文环境为根上下文环境或者调用所述目标任务的第一任务所属的上下文环境。
其中,所述设置模块320,具体用于:如果所述目标任务和所述第一任务为同步任务,则调用所述上下文环境的run方法,将所述任务跟踪补丁传入所述上下文环境的预设位置或者将所述上下文环境中的目标任务替换为所述自定义任务;如果所述目标任务和所述第一任务为异步任务,则通过所述上下文环境的所述父上下文环境将所述任务跟踪补丁传入所述上下文环境的预设位置或者将所述上下文环境中的目标任务替换为所述自定义任务;所述上下文环境是由所述父上下文创建的,并且所述上下文环境中的任务跟踪补丁和所述父上下文环境中的任务跟踪补丁相同。
其中,所述装置还包括启动模块(图中未示出)。该启动模块,用于调用所述上下文环境的run方法,启动所述子上下文环境,以便在执行所述目标任务之后,返回所述目标任务的执行结果;或者,调用所述上下文环境的runguarded方法,启动所述子上下文环境,以便在执行所述目标任务之后,返回所述目标任务的执行结果以及在所述目标任务执行过程中出现的异常信息。
其中,所述预设位置为所述目标任务的程序代码之前的代码位置和/或所述目标任务的程序代码之后的代码位置。
其中,在所述任务跟踪补丁对应的程序代码中包括:钩子函数;其中,所述钩子函数用于监测所述目标任务在执行过程中发生的目标事件;所述跟踪模块330,用于在所述上下文环境中执行所述目标任务的过程中,如果所述钩子函数监测到所述目标事件发生,则执行预先为所述钩子函数对应设置的操作。
本发明实施例所述的装置的功能已经在上述方法实施例中进行了描述,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
本实施例提供一种任务跟踪设备。如图4所示,为根据本发明一实施例的任务跟踪设备的结构图。
在本实施例中,所述任务跟踪设备,包括但不限于:处理器410、存储器420。
所述处理器410用于执行存储器420中存储的任务跟踪程序,以实现上述的任务跟踪方法。
具体而言,所述处理器410用于执行存储器420中存储的任务跟踪程序,以实现以下步骤:创建包含目标任务的上下文环境;在启动所述上下文环境后,将预先设置的任务跟踪补丁设置到所述上下文环境中;在所述上下文环境中执行所述目标任务的过程中,通过所述任务跟踪补丁对所述目标任务进行跟踪。
其中,所述将预设的任务跟踪补丁设置到所述上下文环境中,包括:将所述任务跟踪补丁传入所述上下文环境的预设位置,或者,将所述上下文环境中的目标任务替换为预先设置的自定义任务;其中,在所述自定义任务中包括所述目标任务的程序代码以及位于所述预设位置的所述任务跟踪补丁。
其中,所述创建包含目标任务的上下文环境,包括:调用父上下文环境的fork方法,创建包含目标任务的上下文环境;其中,所述父上下文环境为根上下文环境或者调用所述目标任务的第一任务所属的上下文环境。
其中,所述将预设的任务跟踪补丁设置到所述上下文环境中,包括:如果所述目标任务和所述第一任务为同步任务,则调用所述上下文环境的run方法,将所述任务跟踪补丁传入所述上下文环境的预设位置或者将所述上下文环境中的目标任务替换为所述自定义任务;如果所述目标任务和所述第一任务为异步任务,则通过所述上下文环境的所述父上下文环境将所述任务跟踪补丁传入所述上下文环境的预设位置或者将所述上下文环境中的目标任务替换为所述自定义任务;所述上下文环境是由所述父上下文创建的,并且所述上下文环境中的任务跟踪补丁和所述父上下文环境中的任务跟踪补丁相同。
其中,所述启动所述上下文环境,包括:调用所述上下文环境的run方法,启动所述子上下文环境,以便在执行所述目标任务之后,返回所述目标任务的执行结果;或者,调用所述上下文环境的runguarded方法,启动所述子上下文环境,以便在执行所述目标任务之后,返回所述目标任务的执行结果以及在所述目标任务执行过程中出现的异常信息。
其中,所述预设位置为所述目标任务的程序代码之前的代码位置和/或所述目标任务的程序代码之后的代码位置。
其中,在所述任务跟踪补丁对应的程序代码中包括:钩子函数;其中,所述钩子函数用于监测所述目标任务在执行过程中发生的目标事件;所述通过所述任务跟踪补丁对所述目标任务进行跟踪,包括:在所述上下文环境中执行所述目标任务的过程中,如果所述钩子函数监测到所述目标事件发生,则执行预先为所述钩子函数对应设置的操作。
本发明实施例还提供了一种计算机可读存储介质。这里的计算机可读存储介质存储有一个或者多个程序。其中,计算机可读存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。
当计算机可读存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现上述的任务跟踪方法。由于上面已经对任务跟踪方法进行了详细描述,故在此不做赘述。
以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

Claims (10)

1.一种任务跟踪方法,其特征在于,包括:
创建包含目标任务的上下文环境;
在启动所述上下文环境后,将预先设置的任务跟踪补丁设置到所述上下文环境中;
在所述上下文环境中执行所述目标任务的过程中,通过所述任务跟踪补丁对所述目标任务进行跟踪。
2.根据权利要求1所述的方法,其特征在于,所述将预设的任务跟踪补丁设置到所述上下文环境中,包括:
将所述任务跟踪补丁传入所述上下文环境的预设位置,或者,将所述上下文环境中的目标任务替换为预先设置的自定义任务;其中,在所述自定义任务中包括所述目标任务的程序代码以及位于所述预设位置的所述任务跟踪补丁。
3.根据权利要求2所述的方法,其特征在于,所述创建包含目标任务的上下文环境,包括:
调用父上下文环境的fork方法,创建包含目标任务的上下文环境;
其中,所述父上下文环境为根上下文环境或者调用所述目标任务的第一任务所属的上下文环境。
4.根据权利要求3所述的方法,其特征在于,所述将预设的任务跟踪补丁设置到所述上下文环境中,包括:
如果所述目标任务和所述第一任务为同步任务,则调用所述上下文环境的run方法,将所述任务跟踪补丁传入所述上下文环境的预设位置或者将所述上下文环境中的目标任务替换为所述自定义任务;
如果所述目标任务和所述第一任务为异步任务,则通过所述上下文环境的所述父上下文环境将所述任务跟踪补丁传入所述上下文环境的预设位置或者将所述上下文环境中的目标任务替换为所述自定义任务;所述上下文环境是由所述父上下文创建的,并且所述上下文环境中的任务跟踪补丁和所述父上下文环境中的任务跟踪补丁相同。
5.根据权利要求3所述的方法,其特征在于,所述启动所述上下文环境,包括:
调用所述上下文环境的run方法,启动所述子上下文环境,以便在执行所述目标任务之后,返回所述目标任务的执行结果;或者,
调用所述上下文环境的runguarded方法,启动所述子上下文环境,以便在执行所述目标任务之后,返回所述目标任务的执行结果以及在所述目标任务执行过程中出现的异常信息。
6.根据权利要求2~5中任一项所述的方法,其特征在于,
所述预设位置为所述目标任务的程序代码之前的代码位置和/或所述目标任务的程序代码之后的代码位置。
7.根据权利要求1~5中任一项所述的方法,其特征在于,
在所述任务跟踪补丁对应的程序代码中包括:钩子函数;其中,所述钩子函数用于监测所述目标任务在执行过程中发生的目标事件;
所述通过所述任务跟踪补丁对所述目标任务进行跟踪,包括:
在所述上下文环境中执行所述目标任务的过程中,如果所述钩子函数监测到所述目标事件发生,则执行预先为所述钩子函数对应设置的操作。
8.一种任务跟踪装置,其特征在于,包括:
创建模块,用于创建包含目标任务的上下文环境;
设置模块,用于在启动所述上下文环境后,将预先设置的任务跟踪补丁设置到所述上下文环境中;
跟踪模块,用于在所述上下文环境中执行所述目标任务的过程中,通过所述任务跟踪补丁对所述目标任务进行跟踪。
9.一种任务跟踪设备,其特征在于,所述任务跟踪设备包括处理器、存储器;所述处理器用于执行所述存储器中存储的任务跟踪程序,以实现权利要求1~7中任一项所述的任务跟踪方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1~7中任一项所述的任务跟踪方法。
CN201911383341.0A 2019-12-27 2019-12-27 一种任务跟踪方法、装置、设备和计算机可读存储介质 Pending CN113051151A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911383341.0A CN113051151A (zh) 2019-12-27 2019-12-27 一种任务跟踪方法、装置、设备和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911383341.0A CN113051151A (zh) 2019-12-27 2019-12-27 一种任务跟踪方法、装置、设备和计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN113051151A true CN113051151A (zh) 2021-06-29

Family

ID=76507157

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911383341.0A Pending CN113051151A (zh) 2019-12-27 2019-12-27 一种任务跟踪方法、装置、设备和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN113051151A (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104281520A (zh) * 2013-07-10 2015-01-14 腾讯科技(深圳)有限公司 跟踪和调试的方法、装置及系统
US9582312B1 (en) * 2015-02-04 2017-02-28 Amazon Technologies, Inc. Execution context trace for asynchronous tasks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104281520A (zh) * 2013-07-10 2015-01-14 腾讯科技(深圳)有限公司 跟踪和调试的方法、装置及系统
US9582312B1 (en) * 2015-02-04 2017-02-28 Amazon Technologies, Inc. Execution context trace for asynchronous tasks

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
破狼: "zone.js - 暴力之美", pages 1 - 7, Retrieved from the Internet <URL::https://www.cnblogs.com/whitewolf/p/zone-js.html> *

Similar Documents

Publication Publication Date Title
US8250543B2 (en) Software tracing
CA2347404C (en) System and method for recovering applications
CN107832099B (zh) 一种客户端版本兼容的方法、装置及存储介质
US11704139B2 (en) Service processing method and apparatus, electronic device, and storage medium
US20210103503A1 (en) Exception handling in transactions
US8225289B2 (en) Method and system for improved tool interaction with a target
US11055416B2 (en) Detecting vulnerabilities in applications during execution
JP2009271737A (ja) 情報処理装置
CN113127329B (zh) 脚本调试方法、装置及计算机存储介质
CN115495278B (zh) 异常修复方法、设备及存储介质
CN110688320B (zh) 全局变量的检测方法、装置及终端设备
CN113051151A (zh) 一种任务跟踪方法、装置、设备和计算机可读存储介质
US11630714B2 (en) Automated crash recovery
CN113342376A (zh) 一种针对物联网设备的操作系统进行升级的方法及装置
CN111158783B (zh) 一种环境变量修改方法、装置、设备及可读存储介质
CN111427623A (zh) 程序退出方法、装置、计算机设备和存储介质
CN108255667B (zh) 一种业务监测方法、装置以及电子设备
US10592329B2 (en) Method and electronic device for continuing executing procedure being aborted from physical address where error occurs
CN110908869A (zh) 一种应用程序数据监控方法、装置、设备及储存介质
CN110673801A (zh) 一种依赖对象的初始化操作方法及相关装置
CN111708579A (zh) 一种操作系统设置恢复方法、装置、设备及存储介质
KR20140069936A (ko) 하이퍼바이저 컴퍼넌트를 업그레이드하는 방법 및 그 시스템
CN111061467B (zh) 一种前端工程请求模块高效管理的方法
US20190197235A1 (en) Server and setting method thereof
JPH05282175A (ja) プログラムディバッガ

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