【技术实现步骤摘要】
【国外来华专利技术】可执行代码的推测重放
技术介绍
当在软件应用的开发期间编写代码时,开发人员通常花费大量时间“调试”代码以找到在代码中的运行时错误。在这样做时,开发人员可以采取几种方案来重现和本地化源代码错误,诸如基于不同输入观察程序的行为,插入调试代码(例如以打印变量值,以跟踪执行分支等),临时移除代码部分等。跟踪运行时错误以查明代码错误可能会占用应用开发时间的很大一部分。已经开发了许多类型的调试应用(“调试器”)以便于帮助开发人员进行代码调试过程。这些工具向开发人员提供用于跟踪、可视化和改变计算机代码的执行的能力。例如调试器可以可视化代码指令的执行,可以在代码执行期间的不同时间呈现变量值,可以使开发人员能够改变代码执行路径,和/或可以使开发人员能够在代码中设置“断点”(当在执行期间到达时,导致代码的执行被暂停)等等。一种新兴形式的调试应用能够实现“时间行进”、“反向”或“历史”调试,其中程序的执行由跟踪应用记录/跟踪到一个或多个跟踪文件中,其然后可以用于重放程序的执行以进行前向和后向分析。例如“时间行进”调试器可以使开发人员能够设置转发断点(如传统调试器)以及反向断点。然而,由于需要重放代码执行,“时间行进”调试器可能表现出较差的响应性。例如在用户发出调试操作(例如单步向前/向后、步进向前/向后、前进/后退)和“时间行进”调试器“命中”断点并将结果呈现给用户的时间之间可能存在显著延迟,因为调试器需要响应用户输入来执行可能数十亿条指令的跟踪重放。
技术实现思路
本文描述的至少一些实施例执行可执行代码的跟踪的推测重放,同时在用户界面处同时并发地呈现在用户请求的重放期间遇到兴趣点的结果 ...
【技术保护点】
1.一种在计算机系统处实现的方法,所述计算机系统包括一个或多个处理器,所述方法用于执行代码执行的推测重放,所述方法包括:重放跟踪数据,所述跟踪数据包括表示一个或多个可执行实体的执行的一个或多个跟踪数据流,包括将重放所述跟踪数据的第一运行时状态在存储一个或多个第一重放数据结构中;在所述跟踪数据的重放期间,遇到所述一个或多个可执行实体中的第一兴趣点;至少基于遇到所述第一兴趣点,中止所述跟踪数据的重放,并且在用户界面处呈现被存储在所述一个或多个第一重放数据结构中所述第一运行时状态的至少一部分;以及在所述用户界面处呈现所述第一运行时状态的所述部分的同时,推测地重放所述跟踪数据,包括:自动选择所述一个或多个可执行实体中的第二兴趣点;基于所述一个或多个第一重放数据结构来创建一个或多个第二重放数据结构;以及重放所述跟踪数据直到遇到所述第二兴趣点,包括将重放所述跟踪数据的第二运行时状态存储在所述一个或多个第二重放数据结构中。
【技术特征摘要】
【国外来华专利技术】2017.01.06 US 15/400,5521.一种在计算机系统处实现的方法,所述计算机系统包括一个或多个处理器,所述方法用于执行代码执行的推测重放,所述方法包括:重放跟踪数据,所述跟踪数据包括表示一个或多个可执行实体的执行的一个或多个跟踪数据流,包括将重放所述跟踪数据的第一运行时状态在存储一个或多个第一重放数据结构中;在所述跟踪数据的重放期间,遇到所述一个或多个可执行实体中的第一兴趣点;至少基于遇到所述第一兴趣点,中止所述跟踪数据的重放,并且在用户界面处呈现被存储在所述一个或多个第一重放数据结构中所述第一运行时状态的至少一部分;以及在所述用户界面处呈现所述第一运行时状态的所述部分的同时,推测地重放所述跟踪数据,包括:自动选择所述一个或多个可执行实体中的第二兴趣点;基于所述一个或多个第一重放数据结构来创建一个或多个第二重放数据结构;以及重放所述跟踪数据直到遇到所述第二兴趣点,包括将重放所述跟踪数据的第二运行时状态存储在所述一个或多个第二重放数据结构中。2.根据权利要求1所述的方法,还包括:接收对所述第二兴趣点的用户选择;以及在所述用户界面处呈现被存储在所述一个或多个第二重放数据结构中所述第二运行时状态的至少一部分。3.根据权利要求2所述的方法,还包括丢弃所述一个或多个第一重放数据结构。4.根据权利要求1所述的方法,还包括:接收对第三兴趣点而非所述第二兴趣点的用户选择;以及丢弃所述一个或多个第二重放数据结构。5.根据权利要求1所述的方法,其中自动选择所述一个或多个可执行实体中的所述第二兴趣点包括基于一个或多个预期的下一调试器操作来选择所述第二兴趣点。6.根据权利要求1所述的方法,其中基于所述一个或多个第一重放数据结构来创建所述一个或多个第二重放数据结构包括复制所述一个或多个第一重放数据结构。7.根据权利要求1所述的方法,其中基于所述一个或多个第一重放数据结构来创建所述一个或多个第二重放数据结构包括创建差异数据结构,所述差民数据结构存储所述第一运行时状态和所述第二运行时状态之间的差异。8.根据权利要求1所述的方法,其中推测地重放所述跟踪数据还包括:自动选择所述一个或多个可执行实体中的第三兴趣点;基于所述一个或多个第一重放数据结构来创建一个或多个第三重放数据结构;以及并发地重放所述跟踪数据直到遇到所述第二兴趣点,重放所述跟踪数据直到遇到所述第三兴趣点,包括将重放所述跟踪数据的第三运行时状态存储在所述一个或多个第三重放数据结构中。9.根据权利要求8所述的方法,还包括:接收对所述第二兴趣点的用户选择;在所述用户界面处呈现被存储在所述一个或多个第二重放数据结构中的所述第二运行时状态的至少一部分;以及丢弃所述一个或多个第一重放数据结构和所述一个或多个第二重放数据结构。10.一种计算机系统,包括:一个或多个处理器;以及一个或多个计算机可读介质,具有存储在其上的计算机可执行指令,所述计算机可执行指令由所述一个或多个处理器可执行,以使得所述计算机系统至少执行以下项:重放跟踪数据,所述跟踪数据包括表示一个或多个可执行实体的执行的一个或多个跟踪数据流,包括将重放所述跟...
【专利技术属性】
技术研发人员:J·莫拉,
申请(专利权)人:微软技术许可有限责任公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。