时间旅行调试追踪中的存储器值暴露

    公开(公告)号:CN113678110A

    公开(公告)日:2021-11-19

    申请号:CN202080027930.X

    申请日:2020-04-04

    Inventor: J·莫拉

    Abstract: 本公开涉及在与使存储器单元值被记录到追踪中的事件相对应的(多个)执行时间之前暴露存储器单元值。包括第一追踪片段和第二追踪片段的追踪片段在追踪内被标识。每个追踪片段记录可执行指令在对应线程上的不间断连续执行。第一追踪片段可以在第二追踪片段之前排序。确定在第二片段的回放期间,存储器单元值可以在第一执行时间处被暴露,第一执行时间在第二执行时间之前,第二执行时间对应于使存储器单元值在追踪记录期间被记录到追踪中的事件。输出数据被生成,该输出数据指示在第二追踪片段的回放期间存储器单元值可以在第一执行时间暴露。

    使用编译器生成的仿真优化元数据改进仿真和跟踪性能

    公开(公告)号:CN113196243A

    公开(公告)日:2021-07-30

    申请号:CN201980082004.X

    申请日:2019-12-03

    Inventor: J·莫拉

    Abstract: 仿真器可以使用编译器元数据来有效地仿真从源代码编译的可执行机器代码的执行。基于访问与机器代码相关联的编译器元数据,仿真器可以标识机器代码未暗示的、源代码的(多个)行为,机器代码从该源代码而被编译。从这些行为中,仿真器可以标识在仿真线程的执行期间可以应用的(多个)仿真器优化,以减少仿真机器代码的执行所需要的步骤数,同时保留任何外部可见的副作用。这些优化可以操作来减少仿真机器代码的执行所需要的仿真器操作数,或者从仿真中省略一个或多个机器代码指令。这些优化然后可以在仿真线程的执行的同时而被应用。所仿真的执行可以被记录为跟踪,该跟踪与在没有这些优化的情况下所记录的跟踪等效。

    位精确跟踪中的处理器存储器重排序提示

    公开(公告)号:CN113168367A

    公开(公告)日:2021-07-23

    申请号:CN201980081491.8

    申请日:2019-10-11

    Inventor: J·莫拉

    Abstract: 存储存储器重排序提示到处理器跟踪包括:在系统执行多条机器代码指令的同时,系统发起特定机器代码指令的执行,该特定机器代码指令执行对存储器地址的加载。基于该指令的发起,系统发起将处理器高速缓存中的、存储与存储器地址相对应的第一值的特定高速缓存线存储到处理器跟踪中。在发起特定高速缓存线的存储之后,并且在提交特定机器代码指令之前,系统检测影响特定高速缓存线的事件。基于该检测,系统发起存储器重排序提示到处理器跟踪中的存储。

    分布式时间旅行跟踪记录和重放

    公开(公告)号:CN110799952A

    公开(公告)日:2020-02-14

    申请号:CN201880043765.X

    申请日:2018-05-23

    Inventor: J·莫拉

    Abstract: 分布式跟踪记录和重放基于跟踪在第一计算机系统处的第一实体的执行,同时还并发地并且独立地跟踪在第二计算机系统处的第二实体的执行。跟踪包括在实体在其对应计算机系统处的执行期间发生的并且以支持实体的所记录的执行的完整重放的保真度被记录的对应可排序事件。每个跟踪包括在相应可排序事件中至少部分地排序在实体之间传递的至少一个消息的发送或接收的信息。

    可执行代码的并行重放
    15.
    发明公开

    公开(公告)号:CN110062927A

    公开(公告)日:2019-07-26

    申请号:CN201780076149.X

    申请日:2017-12-13

    Abstract: 本文中的实施例涉及对代码执行的并行重放。实施例解析包括多个追踪数据流的追踪数据,该多个追踪数据流各自表示对多个可执行实体中的对应可执行实体的执行,并且标识多个追踪段,该多个追踪段各自表示由可执行实体中的一个可执行实体在一段时间内执行的一个或多个事件。该实施例定义追踪段之间的排序,标识可执行实体中的至少一个可执行实体中的感兴趣点,并且标识追踪段的当根据排序被线性地重放时将遇到感兴趣点的子集。该实施例在执行池中对追踪段的子集排队以用于由一个或多个处理器重放。然后,基于追踪数据,该实施例使用(多个)处理器来并行地重放追踪段的子集中的两个或更多个追踪段。

    部分进程记录
    16.
    发明公开

    公开(公告)号:CN110036373A

    公开(公告)日:2019-07-19

    申请号:CN201780075091.7

    申请日:2017-11-28

    Abstract: 描述了用于处理所记录的程序数据的技术。在实现中,计算设备中的跟踪模块处理所记录的程序的指令并且生成用于程序优化的跟踪文件。在实现中,跟踪模块记录所接收的程序的子集以包括在跟踪文件中。计算设备还可以或者相反被实现为主动地和在没有用户发起的情况下收集和发起对应用数据的分析。

    用于时间行程调试和分析的基于高速缓存的跟踪

    公开(公告)号:CN109964207A

    公开(公告)日:2019-07-02

    申请号:CN201780069596.2

    申请日:2017-11-06

    Inventor: J·莫拉

    Abstract: 使用高速缓存数据来记录对可执行实体的执行的可重放跟踪包括:跨一个或多个处理器的一个或多个处理单元并发执行可执行实体的一个或多个线程。在一个或多个线程的执行期间,独立地为每个线程记录分离的可重放跟踪。针对每个线程,记录包括记录针对该线程的初始处理器寄存器状态。针对每个线程,记录还包括在检测到处理器数据高速缓存未命中时,记录被导入到处理器数据高速缓存中的至少一行高速缓存数据。记录还包括通过记录其副作用来记录至少一个事件的发生。

    在时间旅行跟踪调试中保护敏感信息

    公开(公告)号:CN120066942A

    公开(公告)日:2025-05-30

    申请号:CN202510130123.5

    申请日:2019-03-08

    Abstract: 本公开的实施例涉及在时间旅行跟踪调试中保护敏感信息。保护与跟踪实体的原始执行相关的敏感信息。实施例包括:标识原始信息包括敏感信息,该原始信息基于实体的一个或多个原始可执行指令的原始执行而被访问。基于原始信息包括敏感信息,实施例包括执行以下中的一项或两项:(i)将包括备选信息而非原始信息的第一跟踪数据存储到跟踪中,同时确保由实体基于原始信息而采用的执行路径在使用跟踪的实体的原始执行的重放期间也将被采用;(ii)将第二跟踪数据存储到跟踪中,该跟踪引起零个或多个备选可执行指令而非实体的一个或多个原始可执行指令在实体的原始执行的重放期间被执行。

    时间旅行调试追踪中的跨线程存储器索引

    公开(公告)号:CN113711190B

    公开(公告)日:2025-03-11

    申请号:CN202080027948.X

    申请日:2020-03-26

    Inventor: J·莫拉

    Abstract: 本公开涉及创建减少用于线程集中分析的处理的存储器快照。标识多个追踪片段,每个追踪片段表示可执行指令在多个线程的对应线程上的不间断连续执行。追踪片段包括与第一线程相对应的第一片段和第二片段、以及与第二线程相对应的第三片段。确定片段中间的排序。按照该排序,第一片段在第一线程上可排序在第二片段之前,并且第三片段可排序在第一片段与第二片段之间。基于第三片段可排序在第一片段与第二片段之间,标识与其执行由第三追踪片段表示的可执行指令交互的存储器单元。将标识存储器单元的存储器快照数据插入到与第一线程相对应的追踪数据中。

    虚拟机运行跟踪
    20.
    发明公开

    公开(公告)号:CN117112134A

    公开(公告)日:2023-11-24

    申请号:CN202311076802.6

    申请日:2018-03-26

    Inventor: J·莫拉

    Abstract: 实施方式涉及虚拟化层捕获由虚拟化层所管理的VM的可重放运行跟踪。可以在由虚拟化层管理的任何运行单元上执行运行跟踪,运行单元例如线程、进程、虚拟处理器、个体VM、多个VM等。被跟踪的运行单元可以并行运行。运行跟踪涉及将以下各项捕获到缓冲区中:运行的指令、输入到指令的存储器、由指令输出的存储器、指令接触的寄存器和排序标记。可以以块捕获跟踪数据,其中保留了因果关系,并且保留了块之间但不必是块内的排序。可以通过在上下文切换之间插入单调递增的标记来描绘块,由此对块进行相对排序。可以通过标识非确定性事件而部分地提供确定性。VM跟踪对客户软件是透明的,客户软件不需要感知。备选地,客户可以与虚拟化层对接以控制跟踪功能性。

Patent Agency Ranking