CN104969144B - 对程序执行的记录 - Google Patents

对程序执行的记录 Download PDF

Info

Publication number
CN104969144B
CN104969144B CN201480006963.0A CN201480006963A CN104969144B CN 104969144 B CN104969144 B CN 104969144B CN 201480006963 A CN201480006963 A CN 201480006963A CN 104969144 B CN104969144 B CN 104969144B
Authority
CN
China
Prior art keywords
entry
computer program
function
status information
execution
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
Application number
CN201480006963.0A
Other languages
English (en)
Other versions
CN104969144A (zh
Inventor
J.S.伍德
R.弗罗因德利克
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.)
Ab Initio Technology LLC
Original Assignee
Ab Initio Technology LLC
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 Ab Initio Technology LLC filed Critical Ab Initio Technology LLC
Publication of CN104969144A publication Critical patent/CN104969144A/zh
Application granted granted Critical
Publication of CN104969144B publication Critical patent/CN104969144B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Debugging And Monitoring (AREA)

Abstract

除了其他事项外,一种方法包括,在正在执行一个或多个计算机程序的计算机系统上,接收定义状态信息的类型的规范,接收与计算机程序中的至少一个相关联的事件已经发生的指示,所述事件与计算机程序的函数的执行相关联,收集描述事件发生时计算机程序的执行状态的状态信息,生成对应于该事件的条目,所述条目包括所收集的状态信息的元素,所述状态信息的元素根据该规范格式化,并且存储该条目。可以解析日志以生成计算机程序的执行的可视化。

Description

对程序执行的记录
相关申请的交叉引用
本申请要求于2013年3月15日提交的临时专利申请序列号61/798246,以及于2014年1月16日提交的美国专利申请序列号14/156905的优先权,这两者的全部内容通过引用并入本文。
技术领域
本规范涉及对程序执行的记录。
背景技术
当微处理器实施构成计算机程序的指令时,该计算机程序可以说是正在执行的。计算机程序通常被组织成包括程序指令的子集的函数(有时称为过程或方法)。以这种方式,当计算机系统正实施函数的指令时,计算机程序的函数可以说是正在执行的。此外,有时可以以日志的形式记录计算机程序的执行。
发明内容
在第一方面中,一种方法包括,在正在执行一个或多个计算机程序的计算机系统上,接收定义状态信息的类型的规范,接收与计算机程序中的至少一个相关联的事件已经发生的指示,所述事件与计算机程序的函数的执行相关联,收集描述在事件发生时计算机程序的执行的状态信息,生成对应于事件的条目,所述条目包括所收集的状态信息的元素,所述状态信息的元素根据规范被格式化,并且存储该条目。
在根据第一方面的第二方面中,每一个条目包括根据生成包括条目的日志文件的调试机制的本机格式被格式化的数据的第一部分,所述数据的第一部分包括时间戳和调试消息中的至少一个,并且其中每一个条目包括根据定义状态信息的类型的规范被格式化的数据的第二部分,其中,根据该规范被格式化的数据的格式是与生成日志文件的调试机制的本机格式不同的格式,并且其中根据该规范被格式化的数据包括各自基于由规范定义的标记进行标记的状态信息的元素。
在根据第一方面或第二方面的第三方面中,该规范定义函数从其执行的对象的实例的标识。
在根据第一方面至第三方面的任一方面的第四方面中,该规范定义函数的标识,并且定义该函数被调用的时间的标识。
在根据第四方面的第五方面中,该规范定义传递给函数的参数,并且定义与函数相关联的变量。
在根据第四方面的第六方面中,该规范定义传递给函数的变量、该函数的输出、或者调用该函数的另一个函数的标识中的至少一个。
在根据第一方面至第六方面的任一方面的第七方面中,该规范定义与生成计算机程序中的至少一个的执行的可视化的设施相兼容的格式。
在根据第一方面至第七方面的任一方面的第八方面中,该规范是XML规范。
在根据第一方面至第八方面的任一方面的第九方面中,条目中的状态信息的类型中的至少一些由标记标识。
在根据第一方面至第九方面的任一方面的第十方面中,在计算机程序中至少一个的执行期间动态调整日志的等级,其中,当指定了日志的不同等级时,记录不同类型的事件。
在根据第一方面至第十方面的任一方面的第十一方面中,在计算机程序中的至少一个的执行期间动态调整记录的细节等级,其中,对于相同类型的事件,当指定了记录的不同的细节等级时,记录不同量的信息。
在根据第一方面至第十一方面的任一方面的第十二方面,接收第一命令以及第二命令,其中,第一命令指示应记录的事件的阈值;其中,第二命令指示应记录在每个日志条目中的细节等级;以及以指示的细节等级生成满足应被记录的事件的阈值的事件条目。
在根据第一方面至第十二方面的任一方面的第十三方面中,接收应当被存储的事件的阈值用于定义一个或多个计算机程序的对象类型的类,以及当属于类的函数正在执行时,生成满足阀值的事件的条目。
在根据第一方面至第十三方面的任一方面的第十四方面中,接收应记录在每一个日志条目中的条目的细节等级,用于定义一个或多个计算机程序的对象类型的类;以及当属于类的函数正在执行时,以所述细节等级生成事件的条目。
在第十五方面中,一种方法包括,在第一计算机系统中,接收包括基于在第二计算机系统上的一个或多个计算机程序的执行过程中发生的事件所生成的条目的日志,所述条目包括描述在各自的事件发生的时间计算机程序中的至少一个的执行状态的状态信息,解析日志以提取表示计算机程序中的至少一个在一段时间的执行的信息,并基于所解析的日志,生成计算机程序中的至少一个的执行的可视化,所述可视化包括表示与计算机程序中的至少一个的部分的执行相关联的时间推移的至少一个图形。
在根据第十五方面的第十六方面中,至少一些条目与计算机程序中的至少一个的函数的调用的执行相关联。
在根据第十五方面或第十六方面的第十七方面中,在第二计算机系统中生成日志,并且将该日志从第二计算机系统提供给第一计算机系统。
在根据第十五方面至第十七方面的任一方面的第十八方面中,在用户界面中显示可视化。
在根据第十五方面至第十八方面的任一方面的第十九方面中,可视化包括计算机程序中的至少一个的函数的图形表示。
在根据第十九方面的第二十方面中,函数的图形表示包括函数的执行时间的图形表示。
在根据第十九方面或第二十方面的第二十一方面中,图形中的至少一些表示包括基于日志的条目确定的交互功能。
在根据第十九方面、第二十方面或第二十一方面的第二十二方面中,图形表示包括表示多个彼此关联地执行的函数的跨度。
在根据第二十二方面的第二十三方面中,在至少一个的计算机程序的执行期间,多个函数中的每一个由多个函数中的另一个调用。
在根据第十五方面至第二十三方面的任一方面的第二十四方面中,可视化包括计算机程序中的至少一个的状态信息的表格表示。
在根据第十五方面到第二十四方面的任一方面的第二十五方面中,日志包括根据XML规范定义的格式。
在根据第二十五方面的第二十六方面中,XML规范定义对应于计算机程序的状态信息的标记。
在根据从第十五方面到第二十六方面的任一方面的第二十七方面中,可视化示出了多个层以及在计算机程序执行期间在多个层发生的事件之间的关系。
在根据第二十七方面的第二十八方面中,所述层包括表示用户交互的层,并且可视化示出用户交互和其他事件之间的关系。
在根据从第十五方面到第二十八方面的任一方面的第二十九方面中,可视化包括各自对应于计算机程序中的至少一个的一部分的层,可视化包括在计算机程序中的至少一个执行时被执行的函数的表示,函数的每一个表示位于与对应于函数的计算机程序的一部分相应的层中。
在根据从第十五方面到第二十九方面的任一方面的第三十方面中,可视化包括计算机程序的执行的至少一个部分的重放,重放示出被调用的函数、传递给被调用的函数的值、以及在该计算机程序的执行过程中用户所提供的输入。
一个或多个方面,单独的或组合的,可以表示为系统、或设备、或存储计算机程序产品的计算机可读存储装置,该产品包括当由计算机系统执行时执行该方面的操作的机器可读指令。作为一个示例,计算机可读存储装置可存储包括当由计算机系统执行时,根据从第一方面至第三十方面中任一方面进行操作的机器可读指令的计算机程序产品。作为另一示例,包括一个或多个处理器的计算机系统可以包括计算机可读存储装置,其存储包括当由一个或多个处理器执行时,根据从第一方面至第三十方面中任一方面进行操作的机器可读指令的计算机程序产品。
本发明的其它特征和优点将从下面的描述以及权利要求书中变得明显。
附图说明
图1A示出了计算机系统和相关的组件。
图1B示出了带注解的日志文件的框图。
图1C示出了规范的框图。
图2示出了带注解的日志文件。
图3A至图3C示出了XML规范。
图4A至图5B示出了日志文件的可视化。
图6A至图6B示出了流程图。
图7示出了计算机系统和相关组件的框图。
具体实施方式
程序执行的过程中生成的日志(有时称为错误日志或调试日志)可包括指示程序员插入程序的调试消息的条目。日志还可以包括注解,其指示当记录日志的条目时,程序的哪些函数(有时被称为子程序、方法、或段)正在执行的信息。带注解的日志可以用于基于包括在批注中的信息,重建程序的执行。例如,可以为想要将程序执行可视化的用户呈现执行的图形化表示。带注解的日志可以用于其它目的,例如,以表格形式查看程序的执行。通过这种方式,不需要使用与计算机程序的执行同时(例如,在同一时间)操作的调试器。因此,在此描述的技术具有增加分析和调试程序执行的方法的数目的优点。
图1A示出了计算机系统100和相关的组件。计算机系统100可以用于可视化在另一计算机系统104上执行的计算机程序102。在一些实现中,该计算机系统104生成带注解的日志文件106,其包括表示计算机程序102的执行的信息。例如,带注解的日志文件106可以包括标识当记录带注解的日志文件106的条目时正在执行的计算机程序102的函数的信息。(虽然,我们描述存储日志条目的日志文件,但是日志可以采取数据库或其他与传统意义的文件不同的数据存储技术的形式)
在一些示例中,在计算机程序102的执行期间生成带注解的日志文件106。例如,其它的计算机系统104可包括执行和记录模块116,其实施计算机程序102的执行。执行和记录模块116可以使得计算机系统104的一个或多个微处理器执行构成计算机程序102的指令。一些指令可以包括使计算机系统104在计算机程序102执行时生成日志文件106的记录指令114。
可以提供带注解的日志文件106给计算机系统100(例如,通过网络传输,或通过数据存储设备提供)。作为响应,计算机系统100可以生成计算机程序102的执行的可视化108。例如,可视化108可以呈现在在计算机系统100上执行的用户界面上。用户界面可以由可视化模块118生成,其接收带注解的日志文件106并基于带注解的日志文件的内容生成可视化108。以这种方式,可视化108可以独立于计算机程序102执行的时间呈现。例如,计算机程序102可以在特定的一天执行,然后带注解的日志文件106可以在不同的一天提供给计算机系统100,这可能是数周或数月或数年之后。如果带注解的日志文件包含可用于重现计算机程序102的执行以及在可视化108中生成重现的表示,则计算机系统100可以使用带注解的日志文件106生成可视化108。例如,在附图3A-3C中表示的一些状态信息可用于重现计算机程序102的执行。
可视化使用不同于数据的本机格式的形式表示数据。例如,如果带注解的日志文件106使用文本形式,则可视化可以包括诸如表格或图形的非文本的元素。可以基于带注解的日志文件106的数据生成非文本的元素。在一些示例中,在可视化中显示的图形可以具有基于在带注解的日志文件106中的一些数据的语义含义的语义含义。例如,如果带注解的日志文件106表示函数在特定时间开始执行,则可视化可以包括表示该函数执行的图形元素。可视化也可以具有交互元素。例如,可视化可以显示在用户界面上,并且包括用户界面的用户可以与之交互的图形元素。在一些示例中,当用户与图形元素进行交互时(例如,使用输入设备),该图形元素改变、或显示其他图形元素、或可能发生图形元素的其他行为。可以基于文本生成图形元素,并且图形元素在用户界面中的行为的方式可以基于文本。
在一些示例中,可视化108是不同于顺序表示的数据的表示。例如,带注解的日志文件106可以包括数据的顺序条目,例如,按照其产生的顺序记录的条目。通过读取条目的文本可以直接查看或检查(例如,由执行该程序的人,或其他希望复查该程序执行的人)带注解的日志文件106的条目。可视化108可以采用除顺序条目的表示之外的形式。例如,可视化108可以包含基于顺序条目表示时间推移的可视元素,但不必包含对应于任何顺序条目的视觉元素。
在一些实现中,执行计算机程序102的计算机系统104在计算机程序102的执行期间,与其他计算机系统110交互。计算机程序102可以包括引用在其他计算机系统110上可用的资源的指令。例如,计算机程序102可以是与网络上可用的服务器交互的客户端程序,例如,访问服务器(例如,计算机系统110中的一个)上的数据或使得函数在服务器上执行。作为另一示例,计算机程序102可以是分布式的计算机程序。分布式计算机程序配置的方式为,它的一些指令(例如,函数或部分函数)在一个计算机系统上执行并且其他指令在其他计算机系统上执行。
在一些实现中,计算机程序102使用面向对象的语言实现。对象是函数和数据(例如,变量和常量值)的集合。以这种方式,计算机程序102在执行时,可以采用实例化的一个或多个对象的形式(例如,从指定对象的函数和数据的类中生成)。
在一些实现中,带注解的日志文件106可以包含计算机程序102的状态信息112。状态信息112可以包括计算机程序102执行时的有关信息。例如,状态信息112可以包括关于在特定的时间点计算机程序102的哪些函数正在执行的信息。状态信息112还可以包括传递给函数的参数(有时称为形参)、函数中定义的变量的值以及函数的输出。状态信息112还可以包括关于函数的对象的信息,例如,已被实例化的对象,对象中定义的变量以及其他信息。状态信息112可以由基于状态信息112生成计算机程序102的执行的可视化的设施(例如,计算机系统100)格式化以备使用。
可以基于规范120确定带注解的日志文件106的格式。可以在生成并处理带注解的日志文件的计算机系统之间共享规范120(例如,图中示出的计算机系统100、104)。因为带注解的日志文件可以具有由规范120定义的共同的格式,所以能够访问规范120的计算机系统可以生成并处理带注解的日志文件106。
规范120的副本对在计算机系统100上的可视化模块118可以是可用的,并且规范120的副本对在其它计算机系统104上的执行和记录模块116可以是可用的。上述模块可以基于在规范120中所定义的格式生成和处理带注解的日志文件106。
图1B示出了带注解的日志文件106的示例。在示出的例子中,带注解的日志文件106包括各自由字段124a和字段124b构成的条目122a和条目122b。字段124a和字段124b包括表示对应于带注解的日志文件106的计算机程序的执行(例如,在图1A中示出的计算机程序102)的信息。字段124a和字段124b可以包括描述在特定的如通过条目122a和条目122b的时间戳126a和时间戳126b所指示的时间的计算机程序状态的状态信息122。某些字段可以包括(嵌套)在其它字段内。
图1C示出了规范120的例子。规范可以包括标记132a-d,其中的每一个定义可以记录在带注解的日志文件106(图1A)中的信息。例如,标记132a-d中的一个或多个可以定义带注解的日志文件106中的条目122a和条目122b(图1B)中记录的信息。条目122a和122b中的字段124a和字段124b的每一个可以对应于特定的标记132a-d。以这种方式,条目122a和条目122b的目的是根据规范120定义的。在一些实现中,规范120还包括包括描述标记132a-d的人类可读信息的注释134a-d。
图2示出了带注解的日志文件200的一部分。带注解的日志文件200可以是在图1A中示出的带注解的日志文件106的例子。该带注解的日志文件200包括字段202,其包含表示对应于带注解的日志文件200的计算机程序(例如,在图1A中示出的计算机程序102)的执行的信息。以这种方式,带注解的日志文件200(例如,在字段202中)可以包括使得系统100能够重现计算机程序的执行并生成执行的可视化的状态信息。带注解的日志文件200包括例如,在计算机程序执行时记录下来的条目204和条目206的条目。在一些示例中,响应于相应的计算机程序的执行过程中发生的事件,记录条目204和条目206。事件可以是计算机程序的任何活动。例如,事件可以是特定指令的执行。在一些示例中,指令明确地要求条目写入到带注解日志文件200中,例如,用于将调试消息写到日志文件中的指令。调试消息是指示程序员可以用来调试程序的信息的消息。在一些示例中,指令没有明确要求将条目写入到带注解的日志文件200中。例如,计算机程序可以被配置为在每一次函数调用时或函数返回(例如,在执行完并将输出数据提供给调用函数)时,将条目写入到带注解的日志文件200中。可以在条目204和条目206各自的字段202中标识函数。
图中所示出的例子可以表示如下示出的伪代码计算机程序:
Object global(UIPopupModel){
main(){function1(UIPopupModel,18);}
}
function1(model,childHeight){
WRITELOG();
function2(childHeight,18);
}
function2(childHeight,measuredMinHeight){
WRITELOG(“Adjust for minMeasuredHeight 18”);
}
在本例中,条目204和条目206各自包括字段202,其包括标记以及未标记的部分208。未标记的部分208不包括标记,并且以可以由查看日志文件的人以纯文本方式读取的方式格式化,例如,根据产生意欲以纯文本查看的消息的调试机制的本机格式格式化。例如,日志消息可以包括当特定事件发生时写入到日志文件的文本(例如,由程序员写入的并且包括在由日志文件表示的程序的代码中的文本,作为对写日志消息的函数调用的参数)。例如,日志消息可以由上述伪代码中示出的“writeLOG”函数指示。在一些示例中,日志消息不是基于由程序员写入的文本。例如,日志消息可以是自动生成的消息,如当函数开始执行时由程序生成的消息。
日志消息也可以出现在条目中的由标记“<lm>”指示的字段202中的一个之中。条目204和条目206各自的其他的标记的部分由其它标记指示。
条目204和条目206的每一个还包括关于当各自的条目204和条目206被记录时正在执行的函数的信息。函数名(“<lm>”)标识特定的函数,例如,在计算机程序的原始程序代码中使用的函数名。例如,在上述伪代码中示出了函数名“function1”与“function2”。相对于图3A-3C在下面说明每一个标记的目的。因为条目204和条目206各自都包括已标记的字段202和未标记的部分208,所以带注解的日志文件200可以通过人类可读的方式以明文查看,并且还可以用作可视化机制的机器可读的输入,下面将更详细地描述。
在一些实现中,状态信息可以按照由模式(schema)定义的格式记录在带注解日志文件中。模式定义可以记录在条目中的状态信息的不同类型。模式以机器可读的方式定义信息,例如,使得计算机系统可以通过咨询该模式从而标识部分状态信息的类型。例如,当记录条目时,该条目由不同的信息片段构成,并且每一个信息片段对应于由模式定义的状态信息的类型中的一个。条目不必包括模式中定义的状态信息的所有类型,但是条目中表示为状态信息的每一条信息确实对应由模式定义的信息类型。
图3A至图3C示出了用于带注解的日志文件的字段的XML规范300(有时称为模式)。虽然在此使用了特定的XML规范300作为例子,这仅仅是一个例子,并且任何其他XML规范或其它种类的规范都可以用来实现此处所描述的技术。在本例中,字段可以是在图2中示出的带注解的日志文件200的字段202。XML规范包括指定字段的标记302和指示标记302的各自的的目的的注释304。一般地,每一个标记对应于特定类型的状态信息,使得状态信息的每一个元素可以被标记。在下面参照附图5A和图5B详细说明标记302中的一些。例如,标记302中的一些可以表示包括特定于对象实例的信息字段(例如,对象实例的变量及它们的值)、传递给函数的参数以及如下所述的其他字段。当生成日志文件时,包括在某些标记302中的信息使得系统100能够重新制定计算机程序的执行,并生成该计算机程序执行的可视化(例如,如下图4A-4B所示)。
可以通过使用不同的编程语言编写的各种计算机程序来访问XML规范。因为XML规范用于定义带注解的日志文件200的202字段的格式,所以相同的日志文件格式可以独立于用于编写与带注解的日志文件相关联的计算机程序的编程语言来使用。例如,与使用第一程序语言(例如,Java)编写的计算机程序相关联的带注解的日志文件可以使用由XML规范300所定义的格式,并且与用其它编程语言(例如,Flex)编写的其它计算机程序相关联的其它带注解的日志文件也可以使用由XML规范300所定义的同样的格式。在一些示例中,可使用除XML之外的语言,例如,可以使用不同的标记语言。一般地,可以使用分隔和标识数据主体中的不同字段的任何方式。
图3A-3C示出了几种类型的标记。其中的一些相对于图5A-5B进一步详细描述。标记<ui>指定特定的日志条目的唯一标识符。标记<type>标识由日志条目表示的事件(有时称为发生)的类型。标记<sm>指定与条目相关联的阶层。标记<lm>指示描述诸如引发将被记录的日志条目的事件的日志条目的文本部分。标记<co>指示调用在记录条目时正在执行的函数的对象。标记<ci>是主调对象的唯一标识符(如,不同于对象名称)。标记<st>和<et>指示与日志条目相关联的事件(例如,函数的执行)的开始和结束时间。标记<md>指示最长期限,如,该函数被允许执行的时间的最大值。标记<li>和<dl>可以指示日志等级和日志的细节等级。
该规范还可以包括在标记<in>下的详细信息。例如,信息可以包括相关联的事件的描述(<ds>)、正在执行的函数的名称(<fn>)以及指示传递给函数的参数和参数的值的标记(<pn>,<pv>)。参数可以是特定于对象的实例或函数(标记为<is>)。其它标记可以指示与事件何时开始(<bi>)或结束(<ei>)相关的参数和值。图4A-4B示出了包括多个函数的计算机程序的执行的可视化400。此可视化有时称为时间轴可视化,因为它展示了执行随时间的进展。虽然在此示出的可视化400表示单一的计算机程序,但是可视化也可用于表示多个计算机程序的执行,例如,基于一个以上的日志文件。例如,可视化400可以是在图1A中示出的可视化108的例子。可视化400可以显示在计算机系统(例如,图1A中示出的计算机系统100)的用户界面上。这种可视化表示随时间推移计算机程序的第一函数和第二函数的执行。第一函数和第二函数的执行以条的形式表示,使得每一个条的长度与执行时间成正比。
该条可以放置在一层或多层中,如层406和层408,有时也被称为阶层(strata)。例如,层406和层408可对应于由可视化表示的计算机程序的部分或层。在一些实现中,不同的层406和层408表示在不同的计算机系统(例如,图1A中示出的计算机系统104和110)上执行的不同的组件。在一些示例中,层406和层408表示由计算机程序执行的工作的逻辑划分。例如,计算机程序可以具有诸如用户界面层、客户端-服务器端交互层以及计算机程序被划分到的其它层。在一些示例中,为方便可视化或诸如调试器的相关函数,层由程序员定义,并且在程序执行的上下文中,不必具有其他含义。计算机程序的每一层可以具有可视化400中相应的层,诸如用户界面层和客户端-服务器端交互层。以这种方式,可视化400可以指示哪些函数与哪一层相关联。例如,一个函数可以与计算机程序的用户界面相关联并且包括与用户界面元素相关联的指令,并且可以在用户界面层406中示出表示函数执行的条402。另一函数可以与计算机程序的客户端-服务器交互相关联并包括与网络通信相关的指令,以及可以在客户端-服务器交互层408中显示表示函数执行的条404。在一些实现方式中,用于生成可视化400的日志文件可以指示与每一个各自的函数相关联的层。
可视化400可以帮助程序开发者获得对计算机程序的更好的了解,例如为何计算机程序产生错误,或者很慢或无响应。例如,如果使用可视化400确定是否一个计算机系统很慢或无响应时,可视化400可以显示当在用户界面中点击按钮后,计算机系统花了20秒返回结果,以及在20秒期间在不同的层中执行多个过程。这使得用户能够查看可视化400以识别哪里可能发生问题,例如,是在客户端而不是在服务器端。相比之下,查看记录文件的用户将无法看到该信息。例如,在从点击按钮到返回结果的20秒内,在日志文件中可能有上千的条目(其中每一个可能是多行的文本)。例如,可能难以通过人工检查数千行的文本确定问题。
条411和条413表示同时执行的函数被显示为在相同的时间点重叠,在这里表示为垂直线405。可能有与相同的层相关联的若干函数或组件并发执行。这是通过在单一的层中彼此平行扩展的条或分段表示。
如图4A所示,查看可视化400的用户可以在条中的一个如条402之上悬停光标(例如,诸如鼠标、触控板、或触摸屏的输入装置)。由条402表示的函数的标识410则在可视化400中显示。标识410可以包括诸如调用由条402表示的函数的另一个函数、提供给由条402所表示的函数的变量、由条402表示的函数的输出值以及由条402所表示的函数其他信息的状态信息(例如,从图1A中示出的状态信息112中派生)。
如图4B所示,可视化400包括跨度指标(span indicator)412和跨度指标414,其每一个指示在可视化400中示出的函数之间存在的多个函数的跨度。一般地,跨度是已经执行的函数的集合。在一些示例中,使用标记标识每一个跨度的函数。例如,定义该函数的程序代码可以包括与跨度的各个函数或包含该跨度的函数的对象类相关联的标签或其他标识符。在一些实现中,由程序员确定,通过在该跨度的开始指定“beginSpan()”函数调用以及在跨度的结束指定“endSpan()”函数调用,将计算机程序内的跨度标记在计算机程序的程序代码内。
在一些示例中,跨度是引起其他函数的执行,直到跨度中的所有的函数都完成的一系列函数。在一些实现中,跨度中的部分函数直接调用跨度的其它函数,例如,某些函数包括调用一些其他函数的指令,并且可以,例如,将参数传递给其他函数。这有时被称为同步跨度(synchronous span)或函数跨度。在一些实现中,跨度的一些函数不直接彼此调用。例如,作为计算机程序的第一线程的部分执行的函数中的一个可以对第二线程进行远程过程调用,然后在第二线程实施调用的操作时继续执行。此外,可以返回该远程过程调用,然后可以从第一线程或第二线程调用另一个函数作为响应。多个线程的函数可以全部是相同跨度的一部分。这有时被称为异步跨度(asynchronous span)。跨度可以包括另一个跨度或与另一个跨度重叠。例如,第二跨度的开始可以在第一跨度结束前发生,例如,如果标记为属于第二跨度的函数被标记为属于第一跨度的函数调用。在一些示例中,异步跨度可以含有一个或多个函数跨度。例如,异步活动“A”可以与跨度”S1”相关联。例如,异步活动“A”在时刻T1开始,在时刻T1+1000结束。在时刻T1+200,与跨度“S2”相关的活动“B”(它可以是同步)开始。它继续直到时间T1+1300。以这种方式,同步跨度“S2”与异步跨度“S1”重叠。
用户可以激活(例如,使用输入设备点击、选择、高亮或以其他方式指示)诸如412的跨度指标中的一个,以显示跨度418。跨度418包括多个函数,并且也包括表示函数之间数据流的线420。例如,第一函数可以处理数据,传递一些数据到第二函数作为函数的参数,然后第二函数可以进一步处理数据,等等。可以使用跨度418的显示检查彼此交互的多个函数的执行。当显示跨度418时,关于跨度的信息422也可以在可视化400中显示。例如,信息422可以包括与跨度418相关的状态信息,例如,在跨度中的执行的最后一个函数的输出。
在一些实现中,可视化400可以显示为动画。例如,可视化400可以通过在一个时间段显示函数402和函数404以动画化,该时间段表示相应的计算机程序执行的时间。当相应的计算机程序最初执行时,函数402和函数404可以按照它们执行的顺序出现在可视化400中。此外,代表函数402和函数404的条可以增长以代表函数从执行到完成的时间。这种类型的动画有时称为计算机程序的执行的重播。
可视化400的优点是在大的具有数百行或数千行的日志文件中包括的信息可以在单个图形中呈现,从而使得程序开发人员能够快速地标识计算机程序的执行中的错误或瓶颈。该技术还提供了系统的哪一部分正在执行多项功能的快速可视化。图5A示出了计算机程序的执行的表格式可视化500。表格式可视化是在图4A-4C中示出的时间轴可视化之外的另一种可视化。例如,表格式可视化500可以是在图1A中示出的可视化108的例子。表格式可视化500可以在计算机系统的用户界面(例如,图1A中示出的计算机系统100)中显示。表格式可视化500包括诸如条目502和条目504的对应于如图2示出的日志文件200条目的条目。对于每一个适用的条目,表格化可视化500包括表示条目的诸如图2中示出的字段202的字段的列。消息510表示由计算机程序的指令指示的消息,例如,由编写该程序的程序员编写的程序调试信息。持续时间512表示与该条目相关联的指令所用的执行的时间。到下一个调用的时间514指示在函数中从该函数开始执行的时间到另一个函数被调用(例如,在函数的调用其他的函数并传递参数给函数的指令中)的时间之间经过的时间。换句话说,到下一个调用的时间指示这个条目和下一个条目之间经过的时间。退出516之后的时间指示从该函数结束到下一个函数的开始之间经过多少时间。换句话说,退出之后的时间指示一个条目的结束和下一个条目的开始之间的未跟踪的时间量。例如,这可以用于找出需要添加记录的功能的位置。例如,退出516之后的时间可以用来确定记录在日志文件中的状态信息是否有间隙。时间戳518指示在日志文件中记录条目502和条目504的时间。例如,如果引起条目502和条目504被记录的事件是函数调用,则时间戳可以对应于调用该函数的时间。
表格可视化500包括包括关于所选条目502的信息的次窗格(secondarypane)520。次窗格520指示柱状格式未显示的其他信息。消息522是上面示出的所选条目502的消息510的完整版本,如果数据不适合柱状的格式(例如,如果消息太长),则可以用它查看表示消息的数据。描述524是引起生成条目502的事件的描述(例如,在执行计算机程序期间发生的事件)。起始时间526指示与条目相关联的指令开始执行的时间,以及结束时间528指示与条目相关联的指令结束执行的时间。
日志等级530指示记录条目502的临界值。在许多类型的调试系统中使用的日志等级的一些示例是“DEBUG”、“INFO”、“WARN”、“ERROR”和“FATAL”。例如,如果选择了日志等级“FATAL”,则将只记录表示致命错误的事件触发的条目。此处所描述的技术可以用于任何类型的日志等级,并且日志等级的种类并不限于这些示例。在一些实现中,图1A中示出的生成带注解的日志文件106的计算机系统104可以使得计算机系统104的用户能够指定带注解的日志文件106中的日志等级530。
在一些示例中,某些类型的条目将被包括在一个日志等级530的记录文件中,而这些相同类型的条目可能不被包括在另一个日志等级530的日志文件中。例如,在计算机程序执行过程中发生的某些事件可能引起将在一个日志等级530(例如,“调试”)记录条目,而这些相同的事件可能不会引起以另一个日志等级530(例如,“默认”)记录条目。
细节等级532指示条目502被记录的细节等级。例如,图1A中示出的生成带注解的日志文件106的计算机系统104可以使得计算机系统104的用户能够指定带注解的日志文件106的细节等级。在一些示例中,细节等级对应于所包括的日志文件的字段的数目。例如,在一个细节等级532下操作的日志文件的条目可以包括由XML规范300(图3A-3C)中指定的可能字段的子集,而在另一细节等级532下操作的日志文件的条目可以包括由XML规范300指定的可能字段的不同子集。一个细节等级532(例如,“详细”)可能导致包括更多数量的字段,而另一个细节等级532(例如,“一般”)可能会导致包括较少数目的字段。
在一些实现中,程序的每一个类可以具有其自己的日志等级和细节等级。类是在面向对象的程序中的对象类型的定义。在一些示例中,配置文件可以指示程序的某些类或全部类的日志等级和细节等级。例如,配置文件可与程序相关联。以这种方式,可以修改特定类的日志等级或细节等级而不修改程序的程序代码。
在一些示例中,包括引起条目502被记录的函数的对象的类型是已知的。这可以通过调用者类型534来指示。
类型536指示引起条目502被记录的事件的类型。例如,一些类型可以包括“创建”(例如,对象的创建),“栈”(例如,在函数栈中的诸如函数进入/退出消息的条目),以及“默认”(其他事件)。
函数栈是已经调用的和记录的嵌套函数的层级记录。例如,计算机程序可以具有以下三个函数:
在这个例子中,函数a调用函数b,并且函数b调用函数c。由函数c中的logWithFunctionStack函数调用生成的日志条目将指示函数栈函数a->函数b->函数c。在一些实现中,函数栈可以使用称为函数跨度的跨度类型的形式来表示。
阶层538指示与引起条目502被记录的函数相关联的层。例如,该层可以是在图4A示出的层(例如,406、408)中的一个。某些层类型可以包括“用户交互”(例如,用户界面项)、客户端”(例如,在诸如图1A中示出的计算机系统104的客户端上执行的指令)、客户端-服务器端”(如,处理客户端和服务器端交互的指令)和“服务器端”(例如,在诸如图1A中示出的计算机系统110中的一个的服务器上执行的指令)。
调用者标识540是标识调用在条目502被记录时正在执行的函数的特定对象的字符串。例如,当任何对象实例化为计算机程序的执行的一部分时,可以给该对象分配唯一的标识符。
跨度542指示条目502所属的跨度,例如,包含当条目502被记录时正在执行的函数的跨度。例如,该跨度可以是在图4B中示出的跨度418。
函数跨度544指示条目502所属的函数跨度。上面相对于图4B描述了函数跨度。例如,函数跨度可以是在如特定的函数的特定点开始的引起生成条目502的函数栈(例如,一系列的函数调用)。
在将入口502写入到带注解的日志文件中时,可以给条目502分配唯一的id 546。
图5B示出了表格式可视化500的另一视图,其中次窗格520显示了与另一条目504相关的信息。这里,次窗格520示出了关于这个条目504的另外的信息,未在关于先前条目502中示出。实例信息545指示关于对象的实例的信息。例如,对象可以是函数从其中调用的对象,例如,当条目504被记录时正在执行的函数。实例信息可以包括诸如对象的变量和变量的值的关于对象的状态信息。
参数548是提供给当条目504被记录时正在执行的函数的参数。例如,当函数被调用时,可能已经提供参数。
表格式可视化使得人们能够查看在程序的执行期间所记录的状态信息的任何或全部的可视化。表格式可视化比图形可视化更全面,但比在文本编辑器或其它基于文本的浏览器中查看日志文件更容易阅读。
图6A示出了过程600的流程图。例如,过程600可以由图1A中示出的计算机系统104来执行,例如,当计算机程序正在计算机系统上执行时。
接收定义状态信息类型的规范(601)。例如,该规范可以包括如图3A-3C中所示的标识状态信息类型的标记。
除其他事项外,该规范中可以定义a)对象的实例的标识,从该对象执行函数,b)函数的标识,c)调用函数的时间的标识,d)传递给函数的参数以及定义与函数相关联的变量e)传递给函数的变量的标识f)函数的输出,g)另一个调用该函数的函数,或其他类型的信息。当我们说规范定义信息,我们指的是,该规范包括可用于标识在日志条目中的每一个信息类型的信息。
在一些示例中,规范的格式是与生成计算机程序(例如,生成如图1A中示出的可视化108的可视化的程序)中的至少一个的执行的可视化的设施兼容的格式。例如,可视化设施可以使用该规范来解析根据规范格式化的日志,并从所解析的信息中生成规范。
接收与计算机程序中的至少一个相关联的事件已经发生的指示(602)。事件与计算机程序的函数的执行相关联。例如,该事件可以是对计算机程序中的函数的调用。
收集当事件发生时描述计算机程序的执行状态的状态信息(603)。例如,该状态信息可以指示计算机程序的当前状态或计算机系统的当前状态,或者可以是其它类型的状态信息。
生成对应于事件的条目(604)。条目包括所收集的状态信息的元素,并且状态信息的元素根据规范格式化。
可以基于日志等级和细节等级记录条目。例如,当指定不同等级的日志时记录不同类型的事件。如果条目与日志等级不匹配,则不记录该条目。此外,对于相同类型的事件,当指定了日志细节的不同等级时,记录不同数量的信息。细节等级决定了在生成条目时包括多少信息在内。在一些示例中,日志等级或细节等级或两者可以在计算机程序的执行过程中动态进行调整。例如,计算机程序可以允许用户使用用户界面控件来设置日志等级530(图5A)。用户可以为计算机程序的不同部分(或层)设置不同的日志等级。关于动态调整,我们指的是在计算机程序执行时,依赖于如哪一个函数正在执行或从哪一类型的对象开始执行函数,而自动调节记录的等级。
在一些示例中,日志等级或细节等级或两者都与定义函数所属的对象类型的类相关联。在面向对象的程序中,对象一般根据类定义,从而每一个对象是类的实例。例如,当生成条目时,使用与对象关联的日志等级和/或细节等级来确定日志等级和/或细节等级,以用于响应于与对象相关联的事件所生成的任何条目(例如,诸如函数调用的事件)。
存储条目(605)。条目可以存储在日志文件中,或诸如日志条目数据库的另一种日志。例如,日志文件可以是图1A中示出的带注解的日志文件106。
图6B示出了过程610的流程图。例如,过程610可以由图1A中示出的计算机系统100执行。
接收日志(612),其包括基于在第二计算机系统上一个或多个计算机程序执行期间发生的事件生成的条目。可以从第二计算机系统接收日志,并且条目包括描述在各个事件发生的时间所述计算机程序中的至少一个的执行状态的计算机程序的状态信息。至少一些条目可以与计算机程序中的至少一个的函数的调用的执行相关联。
解析日志(613)以提取表示在一段时间内计算机程序中的至少一个的执行的信息。加标记的状态信息可以基于定义标记的规范来解释。
基于日志生成计算机程序的执行的可视化(614)。在一些实现中,过程600包括在用户界面中显示可视化。
在一些示例中,可视化包括计算机程序函数的图形表示。函数的图形表示可以包括函数执行时间的图形表示,例如,长度表示执行时间的条。图形表示中的至少一些可以包括基于该日志文件的条目确定的交互功能。
在一些示例中,可视化包括计算机程序的状态信息的表格表示。在一些示例中,日志文件包括具有根据XML规范中定义的格式的字段,例如,对应于计算机程序的状态信息定义标记的XML规范。
在一些示例中,图形表示包括表示多个彼此关联执行的函数的跨度,例如,在计算机程序的执行期间多个函数中的一个由多个函数中的另一个调用。
在一些示例中,可视化示出了多个层和在计算机程序的执行的过程中在多个层中发生的事件之间的关系。例如,层可以包括表示用户交互的层,并且可视化示出了用户交互和其它事件(例如,客户端-服务器端事件)之间的关系。例如,在用户界面层中执行的函数(例如,响应于诸如在用户界面中按下按钮的用户界面事件的函数)可能引起函数在客户端-服务器层执行(例如,响应于按下按钮,启动客户端和服务器之间的网络通信的函数)。
上述记录程序的技术可以使用用于在诸如图1A中示出的计算机系统100或计算机系统104的计算机上执行的软件实现。例如,该软件形成一个一个或多个计算机程序的过程,所述计算机程序在一个或多个已编程的或可编程的计算机系统(其可以是属于诸如分布式、客户端/服务器或网格的各种架构)上执行,计算机系统的每一个包括至少一个处理器、至少一个数据存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备或端口、以及至少一个输出设备或端口。该软件可以形成更大程序的一个或多个模块或组件或层,例如,提供与计算图的设计和配置相关的服务的程序。图的节点和元素可以实现为存储在计算机可读介质中的数据结构或者符合存储在数据存储库中的数据模型的其他组织数据。
可以在诸如CD-ROM之类的可以由通用或者专用可编程计算机读取的存储介质上提供该软件,或者可以经由网络的通信介质将该软件传递(在传播信号中编码)到执行该软件的计算机。所有的功能可以在专用计算机上或者使用诸如协处理器的专用硬件上执行。该软件可以以分布式方式来实现,其中,软件指定的计算的不同部分由不同的计算机执行。每一个这样的计算机程序优选存储在或下载到由通用或专用可编程计算机读取的存储介质或设备(例如固态存储器或介质、或者磁介质或光介质)上,用于在存储介质或设备由计算机系统读取以执行这里描述的过程时配置和操作计算机。本发明的系统也可以考虑被实现为配置有计算机程序的计算机可读存储介质,其中,如此配置的存储介质使得计算机系统按照特定的和预定义的方式操作以执行在此描述的功能。
已经描述了本发明的很多实施例。然而,可以理解的是,可以进行各种修改而不脱离本发明的精神和范围。例如,上述一些步骤可以是顺序无关的,并且因此可以按照与所描述的不同的顺序来执行。例如,生成日志文件的计算机也可以用于显示日志文件的可视化或计算机程序的执行的可视化。例如,计算机100和计算机104可以是相同的计算机。如图7所示,计算机系统700包括执行和记录模块702,以及可视化模块704。执行和记录模块702接收计算机程序706(例如,从程序代码编译的程序),其包括在计算机程序706的函数执行时使得数据将被写入到日志文件的记录指令708。执行和记录模块702输出基于计算机程序706的执行的带注解的日志文件710。可以将带注解的日志文件710提供给可视化模块704,其在计算机系统700上显示可视化712(例如,在诸如计算机显示器的输出设备上,为计算机系统的用户显示可视化)。以这种方式,计算机程序的可视化可以显示在程序正在执行的相同的计算机系统上。可视化可以实时显示。例如,一旦日志条目出现在注解日志文件710中,则可视化712可以在计算机系统700的输出设备上更新。
应当理解,前述描述旨在说明而不是限制由所附权利要求的范围定义的本发明的范围。例如,上述很多功能步骤可以按照不同的顺序执行,而基本上不影响总体处理。其他实施方案在以下权利要求的范围之内。

Claims (35)

1.一种计算机实现的方法,包括:
在执行一个或多个计算机程序的计算机系统上:
接收定义状态信息的类型的规范;
接收与计算机程序中的至少一个相关联的事件已经发生的指示,所述事件与该计算机程序的函数的执行相关联;
收集描述在事件发生时计算机程序的执行状态的状态信息;
生成对应于所述事件的条目,所述条目包括所收集的状态信息的元素,状态信息的元素根据所述规范被格式化;以及
存储所述条目,
其中,每一个条目包括根据生成包括条目的日志文件的调试机制的本机格式被格式化的数据的第一部分,数据的第一部分包括时间戳和调试消息中的至少一个,并且其中每一个条目包括根据定义状态信息的类型的规范被格式化的数据的第二部分,其中,根据所述规范被格式化的数据的格式是不同于生成日志文件的调试机制的本机格式的其他格式,并且其中根据所述规范被格式化的数据包括状态信息的元素,每一个元素基于由所述规范定义的标记加标记。
2.如权利要求1所述的方法,其中,所述规范定义函数从其执行的对象的实例的标识。
3.如权利要求1所述的方法,其中,所述规范定义函数的标识,并且定义该函数被调用的时间的标识。
4.如权利要求3所述的方法,其中,所述规范定义传递给函数的参数,并且定义与所述函数相关联的变量。
5.如权利要求3所述的方法,其中,所述规范定义传递给函数的变量、该函数的输出、或者调用该函数的其它函数的标识中的至少一个。
6.如权利要求1所述的方法,其中,所述规范定义与生成所述计算机程序中的至少一个的执行的可视化的设施相兼容的格式。
7.如权利要求1所述的方法,其中,所述规范是XML规范。
8.如权利要求1所述的方法,其中,条目中的状态信息的类型的至少一些是由标记标识的。
9.如权利要求1所述的方法,包括在计算机程序中的至少一个执行期间动态地调整记录等级,其中当指定不同等级的日志记录时,记录不同类型的事件。
10.如权利要求1所述的方法,包括在计算机程序中的至少一个的执行期间动态地调整记录的细节等级,其中,对于相同类型的事件,当指定了日志记录的不同的细节等级时,记录不同量的信息。
11.如权利要求1所述的方法,包括
接收第一命令和第二命令,
其中,所述第一命令指示应记录的事件的阈值;
其中,所述第二命令指示应记录在每一个日志条目中的细节等级;以及
在指示的细节等级上,生成满足应当被记录下来的事件阈值的事件的条目。
12.如权利要求1所述的方法,包括
接收应被存储的事件的阈值;以及
在函数正在执行时,生成满足阀值的事件的条目。
13.如权利要求1所述的方法,其中包括
接收应记录在每一个日志条目中的细节等级;以及
在函数执行时,生成所述细节等级的事件的条目。
14.一种计算机实现的方法,包括:
在第一计算机系统中:
接收包括基于在第二计算机系统中在一个或多个计算机程序的执行期间发生的事件生成的条目的日志,所述条目包括描述在各自的事件发生的时间计算机程序中的至少一个的执行状态的状态信息;
解析日志以提取表示计算机程序中的至少一个在一段时间的执行的信息;以及
基于所解析的日志,生成计算机程序中的至少一个的执行的可视化,该可视化包括表示与计算机程序中的至少一个的部分的执行相关联的时间推移的至少一个图形,
其中,每一个条目包括根据生成包括条目的日志文件的调试机制的本机格式被格式化的数据的第一部分,数据的第一部分包括时间戳和调试消息中的至少一个,并且其中每一个条目包括根据定义状态信息的类型的规范被格式化的数据的第二部分,其中,根据所述规范被格式化的数据的格式是不同于生成日志文件的调试机制的本机格式的其他格式,并且其中根据所述规范被格式化的数据包括状态信息的元素,每一个元素基于由所述规范定义的标记加标记。
15.如权利要求14所述的方法,其中,所述条目中的至少一些与计算机程序中的至少一个的函数的调用的执行相关联。
16.如权利要求14所述的方法,包括:在第二计算机系统中生成日志,并将所述日志从第二计算机系统提供给第一计算机系统。
17.如权利要求14所述的方法,其中包括在用户界面显示所述可视化。
18.如权利要求14所述的方法,其中,所述可视化包括计算机程序中的至少一个的函数的图形表示。
19.如权利要求18所述的方法,其中,所述函数的图形表示包括函数执行的时间的图形表示。
20.如权利要求18所述的方法,其中,所述图形表示中的至少一些表示包括基于日志的条目确定的交互功能。
21.如权利要求18所述的方法,其中,所述图形表示包括表示多个彼此关联地执行的函数的跨度。
22.如权利要求21所述的方法,其中,在计算机程序中的至少一个的执行期间,所述多个函数中的每一个被所述多个函数中的另一个调用。
23.如权利要求14所述的方法,其中,所述可视化包括计算机程序中的至少一个的状态信息的表格表示。
24.如权利要求14所述的方法,其中,所述日志包括根据XML规范定义的格式。
25.如权利要求24所述的方法,其中,所述XML规范定义对应于计算机程序的状态信息的标记。
26.如权利要求14所述的方法,其中,所述可视化示出了多个层和在所述计算机程序的执行期间在多个层中发生的事件的关系。
27.如权利要求26所述的方法,其中,所述层包括表示用户交互的层,以及示出用户交互和其他事件之间的关系的可视化。
28.如权利要求14所述的方法,其中,所述可视化包括各自对应于所述计算机程序中的至少一个的一部分的层,所述可视化包括在至少一个计算机程序执行时所执行的函数的表示,函数的各自的表示位于与对应于该函数的计算机程序的一部分相应的层中。
29.如权利要求14所述的方法,其中,所述可视化包括计算机程序的执行中的至少一部分的重放,该重放显示调用了哪些函数、传递到被调用的函数的值以及在计算机程序的执行过程中由用户提供的输入。
30.一种计算机可读存储装置,其存储导致正在执行一个或多个计算机程序的计算系统实施操作的指令,所述操作包括:
接收定义状态信息的类型的规范;
接收与计算机程序中的至少一个相关联的事件已经发生的指示,所述事件与该计算机程序的函数的执行相关联;
收集描述在事件发生时计算机程序的执行状态的状态信息;
生成对应于所述事件的条目,该条目包括所收集的状态信息的元素,状态信息的元素根据所述规范被格式化;以及
存储所述条目,
其中,每一个条目包括根据生成包括条目的日志文件的调试机制的本机格式被格式化的数据的第一部分,数据的第一部分包括时间戳和调试消息中的至少一个,并且其中每一个条目包括根据定义状态信息的类型的规范被格式化的数据的第二部分,其中,根据所述规范被格式化的数据的格式是不同于生成日志文件的调试机制的本机格式的其他格式,并且其中根据所述规范被格式化的数据包括状态信息的元素,每一个元素基于由所述规范定义的标记加标记。
31.一种计算机可读存储装置,其存储用于使第一计算系统执行操作的指令,所述操作包括:
接收包括基于在第二计算机系统上在一个或多个计算机程序的执行期间发生的事件生成的条目的日志,所述条目包括描述在各自的事件发生的时间计算机程序中的至少一个的执行状态的状态信息;
解析日志以提取表示计算机程序中的至少一个在一段时间的执行的信息;以及
基于所解析的日志,生成计算机程序中的至少一个的执行的可视化,该可视化包括表示与计算机程序中的至少一个的一部分的执行相关联的时间推移的至少一个图形,
其中,每一个条目包括根据生成包括条目的日志文件的调试机制的本机格式被格式化的数据的第一部分,数据的第一部分包括时间戳和调试消息中的至少一个,并且其中每一个条目包括根据定义状态信息的类型的规范被格式化的数据的第二部分,其中,根据所述规范被格式化的数据的格式是不同于生成日志文件的调试机制的本机格式的其他格式,并且其中根据所述规范被格式化的数据包括状态信息的元素,每一个元素基于由所述规范定义的标记加标记。
32.一种计算机系统,被配置为当一个或多个计算机程序正在执行时实施操作,所述操作包括:
接收定义状态信息的类型的规范;
接收与计算机程序中的至少一个相关联的事件已经发生的指示,所述事件与该计算机程序的函数的执行相关联;
收集描述在事件发生时计算机程序的执行状态的状态信息;
生成对应于所述事件的条目,所述条目包括所收集的状态信息的元素,状态信息的元素根据所述规范被格式化;以及
存储所述条目,
其中,每一个条目包括根据生成包括条目的日志文件的调试机制的本机格式被格式化的数据的第一部分,数据的第一部分包括时间戳和调试消息中的至少一个,并且其中每一个条目包括根据定义状态信息的类型的规范被格式化的数据的第二部分,其中,根据所述规范被格式化的数据的格式是不同于生成日志文件的调试机制的本机格式的其他格式,并且其中根据所述规范被格式化的数据包括状态信息的元素,每一个元素基于由所述规范定义的标记加标记。
33.一种第一计算机系统,被配置为执行操作,所述操作包括:
接收包括基于在第二计算机系统上在一个或多个计算机程序的执行期间发生的事件生成的条目的日志,所述条目包括描述在各自的事件发生的时间计算机程序中的至少一个的执行状态的状态信息;
解析日志以提取表示计算机程序中的至少一个在一段时间的执行的信息;以及
基于所解析的日志,生成计算机程序中的至少一个的可视化,该可视化包括表示与计算机程序中的至少一个的部分的执行相关联的时间推移的至少一个图形,
其中,每一个条目包括根据生成包括条目的日志文件的调试机制的本机格式被格式化的数据的第一部分,数据的第一部分包括时间戳和调试消息中的至少一个,并且其中每一个条目包括根据定义状态信息的类型的规范被格式化的数据的第二部分,其中,根据所述规范被格式化的数据的格式是不同于生成日志文件的调试机制的本机格式的其他格式,并且其中根据所述规范被格式化的数据包括状态信息的元素,每一个元素基于由所述规范定义的标记加标记。
34.一种执行一个或多个计算机程序的计算机系统,所述计算机系统包括:
用于接收定义状态信息的类型的规范的装置;
用于接收与计算机程序中的至少一个相关联的事件已经发生的指示的装置,所述事件与该计算机程序的函数的执行相关联;
用于收集描述在事件发生时计算机程序的执行状态的状态信息的装置;
用于生成对应于所述事件的条目的装置,所述条目包括所收集的状态信息的元素,所述状态信息的元素根据所述规范被格式化;以及
用于存储所述条目的装置,
其中,每一个条目包括根据生成包括条目的日志文件的调试机制的本机格式被格式化的数据的第一部分,数据的第一部分包括时间戳和调试消息中的至少一个,并且其中每一个条目包括根据定义状态信息的类型的规范被格式化的数据的第二部分,其中,根据所述规范被格式化的数据的格式是不同于生成日志文件的调试机制的本机格式的其他格式,并且其中根据所述规范被格式化的数据包括状态信息的元素,每一个元素基于由所述规范定义的标记加标记。
35.一种第一计算机系统,包括:
用于接收包括基于在第二计算机系统上在一个或多个计算机程序的执行期间发生的事件生成的条目的日志的装置,所述条目包括描述在各自的事件发生的时间计算机程序中的至少一个的执行状态的状态信息的装置;
用于解析日志以提取表示计算机程序中的至少一个在一段时间的执行的信息的装置;以及
用于基于所解析的日志,生成计算机程序中的至少一个的执行的可视化的装置,该可视化包括表示与计算机程序中的至少一个的一部分的执行相关联的时间推移的至少一个图形,
其中,每一个条目包括根据生成包括条目的日志文件的调试机制的本机格式被格式化的数据的第一部分,数据的第一部分包括时间戳和调试消息中的至少一个,并且其中每一个条目包括根据定义状态信息的类型的规范被格式化的数据的第二部分,其中,根据所述规范被格式化的数据的格式是不同于生成日志文件的调试机制的本机格式的其他格式,并且其中根据所述规范被格式化的数据包括状态信息的元素,每一个元素基于由所述规范定义的标记加标记。
CN201480006963.0A 2013-03-15 2014-02-11 对程序执行的记录 Active CN104969144B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361798246P 2013-03-15 2013-03-15
US61/798,246 2013-03-15
US14/156,905 2014-01-16
US14/156,905 US9311221B2 (en) 2013-03-15 2014-01-16 Recording program execution
PCT/US2014/015846 WO2014149242A1 (en) 2013-03-15 2014-02-11 Recording program execution

Publications (2)

Publication Number Publication Date
CN104969144A CN104969144A (zh) 2015-10-07
CN104969144B true CN104969144B (zh) 2018-10-19

Family

ID=51534660

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480006963.0A Active CN104969144B (zh) 2013-03-15 2014-02-11 对程序执行的记录

Country Status (10)

Country Link
US (2) US9311221B2 (zh)
EP (1) EP2972665B1 (zh)
JP (1) JP6434957B2 (zh)
KR (1) KR102012342B1 (zh)
CN (1) CN104969144B (zh)
AU (1) AU2014238339B2 (zh)
CA (1) CA2892080C (zh)
HK (1) HK1220783A1 (zh)
SG (1) SG11201504062PA (zh)
WO (1) WO2014149242A1 (zh)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9311221B2 (en) 2013-03-15 2016-04-12 Ab Initio Technology Llc Recording program execution
US9244811B1 (en) * 2013-12-20 2016-01-26 Emc Corporation System and method for smart framework for network backup software debugging
EP3742284A1 (en) 2014-07-18 2020-11-25 AB Initio Technology LLC Managing lineage information
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US9537788B2 (en) 2014-12-05 2017-01-03 Amazon Technologies, Inc. Automatic determination of resource sizing
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
WO2017142535A1 (en) 2016-02-18 2017-08-24 Entit Software Llc Visualizations of computer program transactions
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US9946630B2 (en) * 2016-06-17 2018-04-17 International Business Machines Corporation Efficiently debugging software code
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
JP6920800B2 (ja) * 2016-09-23 2021-08-18 東芝テック株式会社 決済装置、プログラムおよびログ記録方法
US10140056B2 (en) * 2016-09-27 2018-11-27 Intel Corporation Systems and methods for differentiating function performance by input parameters
US10481999B2 (en) 2016-12-05 2019-11-19 Microsoft Technology Licensing, Llc Partial process recording
US10235783B2 (en) * 2016-12-22 2019-03-19 Huawei Technologies Co., Ltd. System and method for visualization of a compute workflow
US9940369B1 (en) 2017-03-08 2018-04-10 Microsoft Technology Licensing, Llc Searching an indexed time-travel trace
US10185645B2 (en) 2017-03-08 2019-01-22 Microsoft Technology Licensing, Llc Resource lifetime analysis using a time-travel trace
US9934126B1 (en) 2017-03-08 2018-04-03 Microsoft Technology Licensing, Llc Indexing a trace by insertion of reverse lookup data structures
US9959194B1 (en) 2017-03-08 2018-05-01 Microsoft Technology Licensing, Llc Indexing a trace by insertion of memory snapshots for replay responsiveness
US9934127B1 (en) 2017-03-08 2018-04-03 Microsoft Technology Licensing, Llc Indexing a trace by insertion of key frames for replay responsiveness
US9983978B1 (en) 2017-03-08 2018-05-29 Microsoft Technology Licensing, Llc Querying an indexed time-travel trace
US10282274B2 (en) 2017-06-14 2019-05-07 Microsoft Technology Licensing, Llc Presenting differences between code entity invocations
JP7199387B2 (ja) * 2017-06-21 2023-01-05 テトラ ラバル ホールディングス アンド ファイナンス エス エイ Plc制御機器においてプロセスデータのログを取る方法
US11113138B2 (en) 2018-01-02 2021-09-07 Carrier Corporation System and method for analyzing and responding to errors within a log file
US10776091B1 (en) * 2018-02-26 2020-09-15 Amazon Technologies, Inc. Logging endpoint in an on-demand code execution system
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
CN111831542B (zh) * 2019-04-23 2022-04-05 华为技术有限公司 Api应用调测方法及装置、存储介质
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
CN112445855B (zh) * 2020-11-17 2024-05-17 海光信息技术股份有限公司 用于图形处理器芯片的可视化分析方法和可视化分析装置
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1567182A (zh) * 2003-06-20 2005-01-19 鸿富锦精密工业(深圳)有限公司 日志记录系统及方法
CN102880541A (zh) * 2012-09-28 2013-01-16 用友软件股份有限公司 日志信息的获取系统和获取方法

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4991176A (en) 1989-06-07 1991-02-05 At&T Bell Laboratories Optimal test generation for finite state machine models
US5168554A (en) * 1989-10-13 1992-12-01 International Business Machines Corporation Converting trace data from processors executing in parallel into graphical form
JPH0820976B2 (ja) * 1993-02-19 1996-03-04 日本電気株式会社 メモリ割当トレース装置
US6219826B1 (en) * 1996-08-01 2001-04-17 International Business Machines Corporation Visualizing execution patterns in object-oriented programs
US5862381A (en) * 1996-11-26 1999-01-19 International Business Machines Corporation Visualization tool for graphically displaying trace data
JP3778652B2 (ja) * 1997-04-18 2006-05-24 株式会社日立製作所 ログデータ収集管理方法及びその装置
US6202199B1 (en) * 1997-07-31 2001-03-13 Mutek Solutions, Ltd. System and method for remotely analyzing the execution of computer programs
US6332212B1 (en) * 1997-10-02 2001-12-18 Ltx Corporation Capturing and displaying computer program execution timing
US6226787B1 (en) * 1999-01-25 2001-05-01 Hewlett-Packard Company Visualization method and system for dynamically displaying operations of a program
US6470388B1 (en) 1999-06-10 2002-10-22 Cisco Technology, Inc. Coordinated extendable system for logging information from distributed applications
US6421724B1 (en) 1999-08-30 2002-07-16 Opinionlab, Inc. Web site response measurement tool
US8055752B1 (en) 1999-11-16 2011-11-08 Ricoh Company, Ltd. Application unit monitoring and reporting system and method with usage data logged into a map structure
US6823497B2 (en) 1999-11-30 2004-11-23 Synplicity, Inc. Method and user interface for debugging an electronic system
JP3979000B2 (ja) * 2000-11-27 2007-09-19 株式会社日立製作所 ログ情報取得出力方法および該方法を実現するプログラムを記録した記録媒体
AUPR230900A0 (en) 2000-12-22 2001-01-25 Canon Kabushiki Kaisha Print engine simulator
US6748583B2 (en) * 2000-12-27 2004-06-08 International Business Machines Corporation Monitoring execution of an hierarchical visual program such as for debugging a message flow
US6817010B2 (en) * 2000-12-27 2004-11-09 International Business Machines Corporation Monitoring messages during execution of a message flow
US7007268B2 (en) * 2001-08-20 2006-02-28 Sun Microsystems, Inc. Method and apparatus for debugging in a massively parallel processing environment
US7559032B2 (en) * 2001-10-12 2009-07-07 National Instruments Corporation System and method for enabling a graphical program to respond to user interface events
US7120901B2 (en) * 2001-10-26 2006-10-10 International Business Machines Corporation Method and system for tracing and displaying execution of nested functions
US7281241B2 (en) * 2002-01-15 2007-10-09 Cadence Design (Israel) Ii Ltd. System and method for visual debugging of constraint systems
US7131113B2 (en) * 2002-12-12 2006-10-31 International Business Machines Corporation System and method on generating multi-dimensional trace files and visualizing them using multiple Gantt charts
CA2433750A1 (en) * 2003-06-27 2004-12-27 Ibm Canada Limited - Ibm Canada Limitee Automatic collection of trace detail and history data
US7703034B2 (en) * 2003-08-07 2010-04-20 National Instruments Corporation Visualization tool for viewing timing information for a graphical program
US7404180B2 (en) * 2003-12-11 2008-07-22 Sap Ag Trace management in client-server applications
US7606893B2 (en) * 2003-12-30 2009-10-20 Sap Ag System and method for integrated logging and tracing functions in an enterprise network
US7475401B1 (en) * 2003-12-30 2009-01-06 Sap Ag Filtered unified logging service
US7376534B2 (en) 2004-05-21 2008-05-20 Bea Systems, Inc. Watches and notifications
US20060230385A1 (en) * 2005-04-12 2006-10-12 I-Lang Chang Method for displaying program profiling, software development program with profiling display and physical storage medium with software development program
US20060248512A1 (en) * 2005-04-28 2006-11-02 Microsoft Corporation Active execution tracing visualization
US7661094B2 (en) * 2005-05-10 2010-02-09 Alcatel-Lucent Usa Inc. Real-time software diagnostic tracing
US20070234306A1 (en) * 2006-03-31 2007-10-04 Klinger Uwe D Tracing performance of machine-readable instructions
US7926040B2 (en) * 2006-09-06 2011-04-12 International Business Machines Corporation Method and system for timing code execution in a korn shell script
GB0617449D0 (en) * 2006-09-06 2006-10-18 Ibm An apparatus for providing a visual representation of a sub-set of a visual program
JP4983805B2 (ja) * 2006-12-14 2012-07-25 富士通株式会社 実行ログ生成プログラム、実行ログ生成装置および実行ログ生成方法
US7840849B2 (en) * 2006-12-21 2010-11-23 Novell, Inc. Methods and apparatus for debugging software including divisions of an execution history of a debuggee program
US7689947B2 (en) 2007-01-04 2010-03-30 International Business Machines Corporation Data-driven finite state machine engine for flow control
US20080209405A1 (en) * 2007-02-28 2008-08-28 Microsoft Corporation Distributed debugging for a visual programming language
US7962314B2 (en) * 2007-12-18 2011-06-14 Global Foundries Inc. Mechanism for profiling program software running on a processor
US9098626B2 (en) * 2008-04-01 2015-08-04 Oracle International Corporation Method and system for log file processing and generating a graphical user interface based thereon
US8464221B2 (en) * 2009-06-16 2013-06-11 Microsoft Corporation Visualization tool for system tracing infrastructure events
US8850403B2 (en) * 2009-12-04 2014-09-30 Sap Ag Profiling data snapshots for software profilers
US9047399B2 (en) * 2010-02-26 2015-06-02 Red Hat, Inc. Generating visualization from running executable code
US8453106B2 (en) * 2010-12-17 2013-05-28 Microsoft Corporation Graphical user interface for exploring source code execution behavior
US9645913B2 (en) * 2011-08-03 2017-05-09 Daniel Geist Method and apparatus for debugging programs
US10133653B2 (en) * 2012-02-23 2018-11-20 Cadence Design Systems, Inc. Recording and playback of trace and video log data for programs
US9342317B2 (en) * 2012-08-09 2016-05-17 International Business Machines Corporation Importing profiles for configuring specific system components into a configuration profile for the system
US8935673B1 (en) * 2012-11-30 2015-01-13 Cadence Design Systems, Inc. System and method for debugging computer program based on execution history
US9311221B2 (en) 2013-03-15 2016-04-12 Ab Initio Technology Llc Recording program execution

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1567182A (zh) * 2003-06-20 2005-01-19 鸿富锦精密工业(深圳)有限公司 日志记录系统及方法
CN102880541A (zh) * 2012-09-28 2013-01-16 用友软件股份有限公司 日志信息的获取系统和获取方法

Also Published As

Publication number Publication date
US9852047B2 (en) 2017-12-26
CA2892080A1 (en) 2014-09-25
SG11201504062PA (en) 2015-09-29
EP2972665A4 (en) 2016-11-16
JP6434957B2 (ja) 2018-12-05
HK1220783A1 (zh) 2017-05-12
CA2892080C (en) 2019-08-20
AU2014238339B2 (en) 2018-11-01
US9311221B2 (en) 2016-04-12
US20140282418A1 (en) 2014-09-18
KR102012342B1 (ko) 2019-08-20
JP2016514322A (ja) 2016-05-19
CN104969144A (zh) 2015-10-07
US20160188442A1 (en) 2016-06-30
WO2014149242A1 (en) 2014-09-25
EP2972665A1 (en) 2016-01-20
KR20150132086A (ko) 2015-11-25
AU2014238339A1 (en) 2015-06-04
EP2972665B1 (en) 2019-05-01

Similar Documents

Publication Publication Date Title
CN104969144B (zh) 对程序执行的记录
Ko et al. Debugging reinvented: asking and answering why and why not questions about program behavior
Lo et al. Scenario-based and value-based specification mining: better together
Borkin et al. Evaluation of filesystem provenance visualization tools
US8135572B2 (en) Integrated debugger simulator
Rothlisberger et al. Exploiting dynamic information in IDEs improves speed and correctness of software maintenance tasks
Greevy et al. Visualizing live software systems in 3D
Ng et al. Identification of behavioural and creational design motifs through dynamic analysis
Hofer et al. Design and implementation of a backward-in-time debugger
Jayaraman et al. Compact visualization of Java program execution
CN105308578B (zh) 状态转变的诊断
Bohnet et al. Visual exploration of function call graphs for feature location in complex software systems
Antoniol et al. Understanding web applications through dynamic analysis
Jiang et al. Log-it: Supporting Programming with Interactive, Contextual, Structured, and Visual Logs
US8831964B2 (en) Legacy software multimedia capture and analysis
CN117472988A (zh) 一种流程实例的日志查看方法、装置、设备及可读介质
Dawes et al. Analysing the performance of Python-based web services with the vypr framework
Mehner et al. Visualizing the synchronization of Java-threads with UML
CN116069649A (zh) 页面测试方法、装置、设备及介质
Zhou et al. TC4JPF: Using Trace Compass to Visualize JPF Traces
Zhou Execution trace visualization for Java Pathfinder using Trace Compass
Dalton et al. Visualizing the runtime behavior of embedded network systems: A toolkit for TinyOS
Besseling et al. Using Theia Trace Viewer to Visualize JPF Traces
Kunz et al. Poet: target-system-independent visualizations of complex distributed executions
JP2003108405A (ja) 試験仕様の作成支援装置及びプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant