[发明专利]软件故障的反向调试在审
申请号: | 201980064836.9 | 申请日: | 2019-09-04 |
公开(公告)号: | CN112789602A | 公开(公告)日: | 2021-05-11 |
发明(设计)人: | 崔伟东;葛馨阳;B·C·C·卡斯克西;牛犇;王若愚;尹寅洙 | 申请(专利权)人: | 微软技术许可有限责任公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F11/07 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 黄倩 |
地址: | 美国华*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 软件 故障 反向 调试 | ||
一种调试系统被配置为解决其中写指令被定向到未知目的地地址的存储器别名状况和其中为多个、并发执行的线程收集控制流信息的并发性状况两者。与应用的先前执行对应的记录的状态值和控制流信息二者被获取。
背景技术
计算机和对应的软件应用正变得越来越复杂,使得用户能够以各种方式来存储、访问以及操纵数据。例如,计算应用可以被用于执行文字处理、图形涉及、声音/视觉处理、数据分析、电子通信以及更多。
计算机应用包括由计算机系统的一个或多个处理器执行的可执行指令形式的代码。这些指令由开发者在开发环境中创建并且定序在一起。一旦指令被编译、解译和/或构建,对应的应用就可以被部署以供使用。
遗憾的是,计算机系统和应用不总是以所意图或所预期的方式来操作,这可能导致部署之前或之后的应用崩溃。至少出于该原因,调试应用以标识和修复代码中使应用崩溃的指令经常是必需的。
还已经创建了不同的开发人员工具来协助开发者编写、编辑、测试和调试应用的可执行指令,以帮助解决系统故障。这些工具中的一些工具包括程序代码文本编辑器、源代码编辑器、调试器和集成开发环境(IDE),仅举几例。然而,遗憾的是,未被注意的程序错误有时会在开发阶段中持续存留,并且将直到软件应用被部署以供一般或广泛使用之后才会被注意到。在应用已经被部署的情况下,调试应用故障可能会更加困难,因为必须检查更大数量的代码以标识引起问题的指令。
最近,被称为“时间旅行(time travel)”调试的调试过程已经出现为一种流行的技术。利用时间旅行调试,跟踪器程序记录处理器指令中所有的处理器指令的状态、以及在程序的执行期间存在的状态中的许多状态。稍后,当程序被调试时,跟踪器数据被用于重创建在执行期间任何点存在的确切的存储器状态和寄存器状态,以便标识代码中引起错误的特定的指令和位置。该技术已经在收集跟踪数据的高资源使用在某种程度上可以接受的开发环境中对开发人员特别有优势。然而,其仍然是不合期望的,因为将被包括在常规时间旅行调试中的繁重的跟踪中的数据记录日志在计算上是昂贵的。
附加地,应注意,用于时间旅行调试的该类型的繁重的跟踪对大部分部署后场景非常不实用。从而,大多数部署后调试众所周知地困难,因为与在开发期间所获取的、被收集用于时间旅行调试的大量数据相反,开发者已经必须依赖于非常有限的信息(例如,本质上仅有在部署之后被收集的被包括在存储器转储文件(dump)中的信息)。特别是应注意,应用的整个执行历史(例如时间旅行跟踪数据)经常是不可用的,因为对那些系统的高保真度的程序跟踪过于昂贵(即,客户端不想要连同执行应用一起来运行资源密集的调试程序)。该有限的信息可用性是为何调试已经被部署的应用是如此困难的主要因素中的一个主要因素。
已经做出了一些尝试来向开发者提供可以在调试期间被使用的其他数据,诸如从稀疏处理器跟踪所获取的客户端侧调试数据。例如,的Processor Trace是一种轻量的硬件跟踪机制,其已经被包括在几乎所有的处理器内。本文中也称为稀疏跟踪、瘦(thin)跟踪、瘦硬件跟踪、稀疏/瘦跟踪、或者稀疏/瘦硬件跟踪的稀疏硬件跟踪标识应用的控制流(即,响应于应用的命令而由计算机系统执行的实际指令的序列)。尽管该信息可以用于标识程序的一般流,该控制流数据仅标识被执行的指令。其不描述数据值或者甚至被使用的存储器地址中的一些存储器地址。因此,该稀疏数据的使用尚未实质改进常规调试技术,特别是时间旅行调试。
尽管有前述内容,已经做出一些尝试来导出、或者更确切地说推断以上所叙述的从使用硬件处理器跟踪所获取的控制流信息中缺失的数据值以及缺失的存储器地址。通常,这些尝试将被包括在存储器转储文件内的状态值与轻量级的硬件跟踪数据(即,控制流)组合,并且然后执行递归的后向分析来得到与每个处理器指令对应的未知状态。尽管这些调试技术中的一些调试技术已经是有帮助的,但是这些技术未被广泛采用,因为它们仅成功出标识处理器指令状态的总数目中的一小部分。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201980064836.9/2.html,转载请声明来源钻瓜专利网。