[发明专利]对处理器未定义行为依赖的重放时间行程跟踪在审
申请号: | 201880045607.8 | 申请日: | 2018-05-25 |
公开(公告)号: | CN110892384A | 公开(公告)日: | 2020-03-17 |
发明(设计)人: | J·莫拉 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 郭星 |
地址: | 美国华*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 处理器 未定义 行为 依赖 重放 时间 行程 跟踪 | ||
重放对处理器未定义行为依赖的跟踪包括:通过基于来自跟踪文件的所跟踪的程序执行的重放所执行的指令,标识对处理器未定义行为的依赖。基于对处理器未定义行为的依赖,重放包括以下中的一项或多项:(i)发起对未定义行为的依赖的通知,(ii)跳转到跟踪文件中的关键帧,并且在该关键帧处恢复重放,(iii)使用两个或更多个潜在行为来分叉重放,或(iv)使用从两个或更多个潜在行为中选择的所选择的行为来继续重放。
背景技术
当在软件应用的开发期间编写代码时,开发方通常花费大量时间来“调试”代码以查找运行时和其他源代码错误。在这样做时,开发方可以采取若干方法来重现源代码错误并将其本地化,诸如基于不同的输入来观察程序的行为、插入调试代码(例如,以打印变量值、跟踪执行分支等)、暂时移除代码部分等。跟踪运行时错误以查明代码错误可能会占用应用开发时间的很大一部分。
为了协助开发方进行代码调试过程,已经开发了许多类型的调试应用(“调试器”)。这些工具赋予开发方跟踪、可视化和更改计算机代码的执行的能力。例如,调试器可以将代码指令的执行可视化,可以在代码执行期间的不同时间呈现代码变量值,可以使得开发方能够更改代码执行路径,和/或可以使得开发方能够设置关于感兴趣的代码元素的“断点”和/或“观察点”(在执行过程中到达“断点”和/或“观察点”时会导致代码的执行被挂起),等等。
新兴的调试应用的形式实现“时间行程”、“反向”或“历史”调试。利用“时间行程”调试,由跟踪应用将程序(例如,诸如线程的可执行实体)的执行记录/跟踪到一个或多个跟踪文件中。然后,(多个)跟踪文件可以被用于稍后重放程序的执行,以用于前向和后向分析。例如,“时间行程”调试器可以使得开发方能够设置前向断点/观察点(如常规调试器)以及反向断点/观察点。
为了便于记录,现有的“时间行程”调试器迫使正在被记录的应用执行,就像这些应用是单线程的并且在一个单线程处理器核上执行,而不管该应用是否能够执行多线程。这样做是为了使现有的调试器能够记录应用执行的完整记录,包括记录应用执行期间发生的每件事的详尽记录,包括执行的所有处理器指令、所有的存储器读和写等。
此外,现有的“时间行程”调试器要求跟踪在与记录有该跟踪的硬件相同的处理硬件(例如,相同处理器模型)上被重放。这样做的一个原因是,实现同一指令集架构(ISA)的处理器的不同模型(即使那些模型由同一制造方制造)在执行同一指令时可能表现出不同的行为。因此,如果跟踪正在与其被记录在其上的处理器模型不同的处理器模型上被重放,则这些不同的行为可能导致无法与其在重放时是如何被执行的一样来重新执行跟踪指令。
发明内容
本文的实施例实现以独特且灵活的方式记录程序执行的跟踪,该方式通常记录非确定性指令的副作用、用以向指令供应作为的输入的一些寄存器值、以及由跟踪代码所依赖的存储器读取。此外,本文的实施例通过将执行的每个线程记录到单独的跟踪数据流,来实现多线程记录和重放,同时标识数据流之间的可排序事件,从而提供跨数据流的事件的部分排序。这使得重放时具有灵活性,诸如能够独立和/或并行地重放跟踪数据流;附加地,基于关键帧的使用,实施例还能够并行地重放同一跟踪数据流的不同段。实施例还使得重放能够在单个计算机系统和/或在多个分布式计算机系统处被执行。在一些实施例中,甚至以传统的“单线程单核”格式记录的跟踪可以被转换为利用前述重放功能中的一个或多个重放功能。
附加地,执行重放的(多个)计算机系统不必包含与在跟踪的记录期间所使用的处理单元相同的(多个)处理单元(例如,相同的模型)。为了提供该灵活性,实施例包括识别所跟踪的代码何时依赖于处理器未定义行为。基于该识别,重放逻辑可以采取一个或多个动作来适应对处理器未定义行为的依赖和/或生成对依赖的通知。例如,当处理器未定义行为被依赖时,实施例可以执行以下中的一项或多项:(i)跳转到跟踪中的下一个关键帧,(ii)在知晓重放可能会偏离所记录的执行的情况下,“尽最大努力”向用户或软件组件通知该依赖并且继续重放,(iii)“分叉”重放以尝试由记录处理器可能已经表现出的两个或更多个可能的行为,或者(iv)标识由记录处理器(可能)表现出的行为,并且使用该行为继续进行重放。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201880045607.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:洗衣清洁组合物
- 下一篇:远程用户设备的定位方法和系统