[发明专利]可执行代码的推测重放有效
申请号: | 201780082584.3 | 申请日: | 2017-12-28 |
公开(公告)号: | CN110168507B | 公开(公告)日: | 2023-04-07 |
发明(设计)人: | J·莫拉 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京世辉律师事务所 16093 | 代理人: | 王俊 |
地址: | 美国华*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 可执行 代码 推测 重放 | ||
1.一种在计算机系统处实现的方法,所述计算机系统包括一个或多个处理器,所述方法用于执行代码执行的推测重放,所述方法包括:
重放跟踪数据,所述跟踪数据包括表示一个或多个可执行实体的执行的一个或多个跟踪数据流,重放所述跟踪数据包括将重放所述跟踪数据的第一运行时状态存储在一个或多个第一重放数据结构中;
在所述跟踪数据的重放期间,遇到所述一个或多个可执行实体中的第一兴趣点;
至少基于遇到所述第一兴趣点,中止所述跟踪数据的重放,并且在用户界面处呈现被存储在所述一个或多个第一重放数据结构中的所述第一运行时状态的至少一部分;以及
在所述用户界面处呈现所述第一运行时状态的所述部分的同时,推测地重放所述跟踪数据,包括:
自动选择所述一个或多个可执行实体中的第二兴趣点;
基于所述一个或多个第一重放数据结构来创建一个或多个第二重放数据结构;以及
重放所述跟踪数据直到遇到所述第二兴趣点,包括将重放所述跟踪数据的第二运行时状态存储在所述一个或多个第二重放数据结构中。
2.根据权利要求1所述的方法,还包括:
接收对所述第二兴趣点的用户选择;以及
在所述用户界面处呈现被存储在所述一个或多个第二重放数据结构中的所述第二运行时状态的至少一部分。
3.根据权利要求2所述的方法,还包括丢弃所述一个或多个第一重放数据结构。
4.根据权利要求1所述的方法,还包括:
接收对第三兴趣点而非所述第二兴趣点的用户选择;以及
丢弃所述一个或多个第二重放数据结构。
5.根据权利要求1所述的方法,其中自动选择所述一个或多个可执行实体中的所述第二兴趣点包括基于一个或多个预期的下一调试器操作来选择所述第二兴趣点。
6.根据权利要求5所述的方法,其中所述一个或多个预期的下一调试器操作包括以下项中的一项或多项:单步向前操作、单步向后操作、步进向前操作、步进向后操作、前进操作或后退操作。
7.根据权利要求5所述的方法,其中所述一个或多个预期的下一调试器操作基于执行过去的调试器使用模式的统计分析而被选择。
8.根据权利要求1所述的方法,其中基于所述一个或多个第一重放数据结构来创建所述一个或多个第二重放数据结构包括复制所述一个或多个第一重放数据结构。
9.根据权利要求1所述的方法,其中基于所述一个或多个第一重放数据结构来创建所述一个或多个第二重放数据结构包括创建差异数据结构,所述差异数据结构存储所述第一运行时状态和所述第二运行时状态之间的差异。
10.根据权利要求1所述的方法,其中基于所述一个或多个第一重放数据结构来创建所述一个或多个第二重放数据结构包括基于分叉对应于所述一个或多个可执行实体中的至少一个可执行实体的线程来创建写时复制数据结构。
11.根据权利要求1所述的方法,其中推测地重放所述跟踪数据还包括:
自动选择所述一个或多个可执行实体中的第三兴趣点;
基于所述一个或多个第一重放数据结构来创建一个或多个第三重放数据结构;以及
重放所述跟踪数据直到遇到所述第二兴趣点,并发地重放所述跟踪数据直到遇到所述第三兴趣点,包括将重放所述跟踪数据的第三运行时状态存储在所述一个或多个第三重放数据结构中。
12.根据权利要求11所述的方法,还包括:
接收对所述第二兴趣点的用户选择;
在所述用户界面处呈现被存储在所述一个或多个第二重放数据结构中的所述第二运行时状态的至少一部分;以及
丢弃所述一个或多个第一重放数据结构和所述一个或多个第二重放数据结构。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201780082584.3/1.html,转载请声明来源钻瓜专利网。