-
公开(公告)号:CN112368684B
公开(公告)日:2025-03-18
申请号:CN201980043057.0
申请日:2019-06-18
Applicant: 微软技术许可有限责任公司
Inventor: J·莫拉
IPC: G06F11/362 , G06F12/126 , G06F12/0802
Abstract: 经由高速缓存执行断点检测包括:检测存储器访问的出现,以及标识高速缓存的任何高速缓存行是否与关联于存储器访问的地址相匹配。在确实有高速缓存行与关联于存储器访问的地址相匹配时,断点没有被遇到。在没有高速缓存行与关联于存储器访问的地址相匹配时,实施例标识是否有任何高速缓存行在一个或多个标志位被忽略时与关联于存储器访问的地址相匹配。在确实有高速缓存行在一个或多个标志位被忽略时与关联于存储器访问的地址相匹配时,实施例执行断点是否被遇到的检查。否则,实施例处理高速缓存未命中。
-
公开(公告)号:CN112074817B
公开(公告)日:2025-02-28
申请号:CN201980029543.7
申请日:2019-04-25
Applicant: 微软技术许可有限责任公司
IPC: G06F11/3668
Abstract: 所描述的技术有助于在所跟踪的程序行为的重放期间执行控制。跨级别映射将跟踪中的源代码、中间表示和本机指令相关联。跟踪包括由运行时管理的程序执行的本机代码指令的记录。跟踪不包括运行时的任何执行实例。设置断点以使跟踪位置与源代码表达式或语句对准,并且略过垃圾收集和开发者不太可能感兴趣的其他代码。实时调试环境被适配于支持基于跟踪的反向执行。调试器或其他工具中的执行控制器可以利用断点范围、跨级别映射、向后步进退出支持和其他项来控制跟踪的重放执行。可以将熟悉的编译器或熟悉的运行时的方面重新用于创新的执行控制,该创新的执行控制重放先前生成的本机代码,这与它们生成本机代码的既定目的相反。
-
公开(公告)号:CN111742301B
公开(公告)日:2024-11-08
申请号:CN201980014496.9
申请日:2019-02-14
Applicant: 微软技术许可有限责任公司
Abstract: 基于上层缓存层的跟踪日志记录,确定下层缓存层如何记录流入量。第二缓存从下层第一缓存接收引用存储器地址的日志记录请求。第二缓存确定它是否具有针对存储器地址的缓存行。当存在缓存行时,第二缓存将请求转发到下一日志记录缓存层,或者如果第二缓存是最外面的日志记录层,则使缓存行被日志记录。当不存在缓存行时,当缓存行不被第二缓存确定为被日志记录,或者当缓存行被第二缓存确定为被日志记录但未确定第一缓存是否知道第二缓存中缓存行的当前值时,第二缓存使缓存行被日志记录。
-
公开(公告)号:CN110998541B
公开(公告)日:2023-11-17
申请号:CN201880050455.0
申请日:2018-06-01
Applicant: 微软技术许可有限责任公司
Inventor: J·莫拉
IPC: G06F11/36
Abstract: 试验性执行实体包括执行实体的第一执行。在第一执行中的点处,暂停第一执行并且接收指定用于运行时数据元素的替换值的输入。基于该输入,在第一执行中的点处开始执行实体的第二执行,同时使得第一执行能够稍后恢复,而不由第二执行影响。第二执行包括将运行时数据元素设定为替换值,并且模拟在第二执行期间由实体执行的一个或多个存储器写入。实体的第一执行可以包括实时执行、基于跟踪数据的执行、基于过程转储的执行等。
-
公开(公告)号:CN111615687B
公开(公告)日:2023-10-24
申请号:CN201980008659.2
申请日:2019-01-09
Applicant: 微软技术许可有限责任公司
Inventor: J·莫拉
IPC: G06F11/36
Abstract: 使用高速缓存一致性协议(CCP)数据来解耦跟踪数据流。一个或多个跟踪数据流包括与执行多个线程有关的高速缓存活动跟踪数据和CCP跟踪数据。高速缓存活动跟踪数据包括线程间数据相依性,线程间数据相依性包括相依高速缓存活动跟踪条目,每个相依高速缓存活动跟踪条目依赖于被跟踪的线程之间的CCP相依性来记录对应线程进行的对应存储器访问。移除线程间数据相依性,以针对多个线程中的每个线程创建使得每个线程能够被独立地重放的独立高速缓存活动跟踪数据。针对每个相依高速缓存活动跟踪条目,该移除包括:(i)基于被跟踪的线程之间的CCP相依性,标识对应线程进行的对应存储器访问的对应值,以及(ii)代表对应线程记录对应存储器访问的对应值。
-
公开(公告)号:CN111602121B
公开(公告)日:2023-10-24
申请号:CN201880085906.4
申请日:2018-12-18
Applicant: 微软技术许可有限责任公司
IPC: G06F11/36
Abstract: 基于应用的执行的可重放跟踪来检测和提供在应用的先前执行期间的非故障存储器访问的通知。实施例包括从应用的先前执行的可重放跟踪重放应用的先前执行的(多个)部分,同时跟踪由应用使用的(多个)存储器区域的生命期。基于跟踪存储器区域的生命期,检测在应用的先前执行期间由应用进行的非故障但不适当的(多个)存储器访问。在用户界面处和/或向软件组件提供关于这些非故障但不适当的(多个)存储器访问的通知。
-
公开(公告)号:CN110462588B
公开(公告)日:2023-09-05
申请号:CN201880021127.8
申请日:2018-03-26
Applicant: 微软技术许可有限责任公司
Inventor: J·莫拉
IPC: G06F9/455
Abstract: 实施方式涉及虚拟化层捕获由虚拟化层所管理的VM的可重放运行跟踪。可以在由虚拟化层管理的任何运行单元上执行运行跟踪,运行单元例如线程、进程、虚拟处理器、个体VM、多个VM等。被跟踪的运行单元可以并行运行。运行跟踪涉及将以下各项捕获到缓冲区中:运行的指令、输入到指令的存储器、由指令输出的存储器、指令接触的寄存器和排序标记。可以以块捕获跟踪数据,其中保留了因果关系,并且保留了块之间但不必是块内的排序。可以通过在上下文切换之间插入单调递增的标记来描绘块,由此对块进行相对排序。可以通过标识非确定性事件而部分地提供确定性。VM跟踪对客户软件是透明的,客户软件不需要感知。备选地,客户可以与虚拟化层对接以控制跟踪功能性。
-
公开(公告)号:CN116627811A
公开(公告)日:2023-08-22
申请号:CN202310574672.2
申请日:2017-12-29
Applicant: 微软技术许可有限责任公司
Inventor: J·莫拉
IPC: G06F11/36 , G06F12/0875
Abstract: 根据本公开的实现,提出了一种监测断点出现的存储器位置的方案。在该方案中,经由高速缓存的有效断点检测包括通过检测高速缓存上的高速缓存未命中来监测存储器位置。将要被监测的储存器地址存储在监测列表中,并且如果高速缓存中存在与储存器地址重叠的任何高速缓存行,则将其逐出。当检测到基于存储器访问操作发生高速缓存未命中时,确定基于高速缓存未命中导入到高速缓存中的高速缓存行的一部分是否与存储在监测列表中的存储器地址重叠。当存在重叠时,对存储器地址处理一个或多个监测操作,并且从高速缓存中逐出导入的高速缓存行。
-
公开(公告)号:CN109643273B
公开(公告)日:2022-02-01
申请号:CN201780053059.9
申请日:2017-08-23
Applicant: 微软技术许可有限责任公司
Inventor: J·莫拉
IPC: G06F11/36
Abstract: 记录多线程进程的执行的可重放跟踪包括标识跟踪存储器模型,其限定将要跨多线程进程的多个线程被排序的一个或多个可排序事件。跨一个或多个处理器的一个或多个处理单元同时执行多个线程。在多个线程的执行期间,针对每个线程独立地记录单独的可重放跟踪。记录包括针对每个线程:记录针对线程的初始状态;记录由至少一个处理器指令执行的至少一个存储器读取,由线程执行的至少一个处理器指令将存储器作为输入;以及利用单调增加的数字记录由线程执行的至少一个可排序事件,单调增加的数字将事件在跨多个线程的其他可排序事件间进行排序。
-
公开(公告)号:CN112074817A
公开(公告)日:2020-12-11
申请号:CN201980029543.7
申请日:2019-04-25
Applicant: 微软技术许可有限责任公司
IPC: G06F11/36
Abstract: 所描述的技术有助于在所跟踪的程序行为的重放期间执行控制。跨级别映射将跟踪中的源代码、中间表示和本机指令相关联。跟踪包括由运行时管理的程序执行的本机代码指令的记录。跟踪不包括运行时的任何执行实例。设置断点以使跟踪位置与源代码表达式或语句对准,并且略过垃圾收集和开发者不太可能感兴趣的其他代码。实时调试环境被适配于支持基于跟踪的反向执行。调试器或其他工具中的执行控制器可以利用断点范围、跨级别映射、向后步进退出支持和其他项来控制跟踪的重放执行。可以将熟悉的编译器或熟悉的运行时的方面重新用于创新的执行控制,该创新的执行控制重放先前生成的本机代码,这与它们生成本机代码的既定目的相反。
-
-
-
-
-
-
-
-
-