【技术实现步骤摘要】
【国外来华专利技术】经由高速缓存的有效断点检测
技术介绍
当在软件应用的开发期间编写代码时,开发人员通常花费大量时间“调试”代码以找到代码中的运行时错误。在这样做时,开发人员可以采取若干方法来对源代码错误进行再现和本地化,诸如基于不同输入来观察程序的行为,插入调试代码(例如,打印变量值、追踪执行分支等),暂时删除代码部分等。追踪运行时错误以查明代码错误可能会占用应用开发时间的很大一部分。已经开发了许多类型的调试应用(“调试器”)以便协助开发人员进行代码调试过程。这些工具使开发人员能够跟踪、可视化和改变计算机代码的执行。例如,调试器可以将代码指令的执行可视化,可以在代码执行期间的不同时间呈现变量值,可以使开发人员能够改变代码执行路径,和/或可以使开发人员能够在感兴趣的代码元素上设置“断点”和/或“观察点”(在执行期间到达时,其导致代码的执行被暂停)等等。一种新兴形式的调试应用启用了“时间旅行”、“反向”或“历史”调试,其中程序的执行由跟踪应用记录/跟踪到一个或多个跟踪文件中,然后所述一个或多个跟踪文件可以被用来稍后重放程序的执行,以用于进行前向和后向分析。例如,“时间旅行”调试器可以使开发人员设置前向断点/观察点(像传统调试器那样)以及反向断点/观察点。在实现“时间旅行”调试器中的一个挑战涉及如何在以灵活且高效的方式重放跟踪文件期间检测何时遇到感兴趣点(例如,断点/观察点)。已经探索的一种在重放期间用于追踪兴趣点的机制是使用处理器实现的硬件断点。虽然高性能,但是硬件断点的使用具有严重限制可以同时监视的断点数量(例如,INTEL处理器中的四个)的缺点,并且固有地将调试器实现绑定到特定支 ...
【技术保护点】
1.一种在包括一个或多个处理器的计算机系统处实现的用于通过高速缓存的使用来监测存储器位置的方法,所述方法包括:标识要被监测的存储器地址;至少基于标识所述存储器地址,至少执行以下操作:将所述存储器地址存储在监测列表中;以及确定与所述存储器地址重叠的一个或多个高速缓存行是否已经存在于高速缓存中,并且当所述一个或多个高速缓存行已经存在于所述高速缓存中时,从所述高速缓存中逐出所述一个或多个高速缓存行;基于存储器访问操作,检测高速缓存未命中的发生;以及至少基于所述高速缓存未命中的发生,确定基于所述高速缓存未命中导入到所述高速缓存中的高速缓存行的一部分是否与存储在所述监测列表中的所述存储器地址重叠,并且当导入的高速缓存行的所述部分确实与所述存储器地址重叠时,至少执行以下操作:处理对所述存储器地址的一个或多个监测操作;以及从所述高速缓存中逐出所述导入的高速缓存行。
【技术特征摘要】
【国外来华专利技术】2017.01.13 US 15/405,8491.一种在包括一个或多个处理器的计算机系统处实现的用于通过高速缓存的使用来监测存储器位置的方法,所述方法包括:标识要被监测的存储器地址;至少基于标识所述存储器地址,至少执行以下操作:将所述存储器地址存储在监测列表中;以及确定与所述存储器地址重叠的一个或多个高速缓存行是否已经存在于高速缓存中,并且当所述一个或多个高速缓存行已经存在于所述高速缓存中时,从所述高速缓存中逐出所述一个或多个高速缓存行;基于存储器访问操作,检测高速缓存未命中的发生;以及至少基于所述高速缓存未命中的发生,确定基于所述高速缓存未命中导入到所述高速缓存中的高速缓存行的一部分是否与存储在所述监测列表中的所述存储器地址重叠,并且当导入的高速缓存行的所述部分确实与所述存储器地址重叠时,至少执行以下操作:处理对所述存储器地址的一个或多个监测操作;以及从所述高速缓存中逐出所述导入的高速缓存行。2.如权利要求1所述的方法,其中所述一个或多个监测操作包括将所述一个或多个处理器中的至少一个置于详细模式中并且使所述至少一个处理器单步操作。3.如权利要求1所述的方法,其中确定基于所述高速缓存未命中导入到所述高速缓存中的高速缓存行的一部分是否与存储在所述监测列表中的所述存储器地址重叠包括确定所述导入的高速缓存行是否包括与存储在所述监测列表中的所述存储器地址匹配的存储器地址。4.如权利要求1所述的方法,其中处理对所述存储器地址的一个或多个监测操作包括确定当所述存储器访问操作写入或读取所述存储器地址时遇到断点。5.如权利要求1所述的方法,其中所述存储器访问操作包括数据读取、数据写入或代码执行访问操作中的至少一个。6.如权利要求1所述的方法,还包括通过对由所述多个存储器操作访问的高速缓存行执行监测操作来合并针对多个存储器操作的高速缓存未命中,同时避免在所述多个存储器操作期间逐出所述高速缓存行。7.一种计算机系统,包括:一个或多个处理器;以及一个或多个计算机可读介质,所述计算机可读介质上存储有指令,所述指令由所述一个或多个处理器可执行,以使所述计算机系统通过高速缓存的使用来监测存储器位置,所述指令包括可执行以使所述计算机系统执行至少以下操作的指令:标识要被监测的存储器地址;至少基于标识所述存储器地址,至少执行以下操作:将所述存储器地址存储在监测列表中;以及确定与所述存储器地址重叠的一个或多个高速缓存行是否已经存在于高速缓存中,并且当所述一个或多个高速缓存行已经存在于所述高速缓存中时,从所述高速缓存中逐出所述一个或多个高速缓存行;基于存储器访问操作,检测高速缓存未命中的发生;以及至少基于所述高速缓存未命中的发生,确定基于所述高速缓存未命中导入...
【专利技术属性】
技术研发人员:J·莫拉,
申请(专利权)人:微软技术许可有限责任公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。