当前位置: 首页 > 专利查询>微软公司专利>正文

基于执行捕捉和重放的调试制造技术

技术编号:6972280 阅读:162 留言:0更新日期:2012-04-11 18:40
提供了一种能够记录在程序的执行期间采用的代码路径的调试工具以及捕捉诸如函数退出或语句的可配置时间点处的存储器状态的方式。该工具也记录与诸如数据库的外部系统的交互,并且捕捉哪些语句导致与这些系统的交互。对该调试工具的输出的分析允许开发人员理解执行该代码的哪个部分;在可配置时间点处相关变量的值是什么;以及哪些代码语句相关于哪些与外部系统的交互。

【技术实现步骤摘要】
基于执行捕捉和重放的调试
并申请涉及软件的调试,特别是基于执行捕捉和重放的调试。
技术介绍
软件利用的争论立场的数目的增加导致了将更多数目的错误和故障引入现代系统的可能的增加。将错误和故障引入到现代系统的可能使得调试或查找并移除错误的实现对于系统的完整性是至关重要的。系统不只是源自源代码并且可包括元数据、资源文件或其他类型的信息。维护系统完整性的调试努力进而是由系统的复杂性定义的。调试复杂性基于纠正简单错误的努力而变化。努力可以是执行冗长的数据收集和分析到进行穷尽的路径分析以试图全面探察编程执行路径。编程人员或质量保证团队的调试水平也可以是对应用程序的高效且全面的调试中的主要因素。然而,系统复杂性对要求更高质量的软件调试努力具有更大的影响力。影响软件调试努力的其他因素是在编码软件中使用的编程语言以及对诸如调试器等可用工具的利用。调试器通过允许编程人员开始、停止和暂停程序的执行来增强调试努力。调试器也允许编程人员监控应用程序的执行并且在整个执行路径中插入断点(停止)以用于分析。
技术实现思路
提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键因素或必要特征,也不旨在用于限定所要求保护的主题的范围。各实施例涉及在整个程序执行过程中捕捉应用程序的存储器状态以及到外部系统的输入/输出(I/O),并且重放所捕捉的存储器状态和外部系统-I/O交互。依照一些实施例,可以在应用程序的执行期间在可配置点处捕捉应用程序的存储器状态,可配置点可以是函数或应用程序的子例程的入口点或出口点。捕捉外部系统-I/O交互可以包括记录外部系统调用和启动调用的相关代码语句。此外,重放可允许进入、退出、跨过和在时间上后退到先前的语句或函数。依照各实施例的调试工具的输出可提供采取哪些代码路径、变量的值以及直接或间接导致与外部系统的交互的语句。通过阅读以下详细描述和审阅相关联附图,这些和其他特征和优点将是显而易见的。可以理解,前述一般描述和以下详细描述均仅是说明性,且不限制所要求保护的各方面。附图说明图1是示出在访问外部系统期间捕捉和重放应用程序的执行的计算设备的概念图;图2A是显示要在捕捉和重放应用程序的执行中使用的示例性代码的图示;图2B是显示图2A的代码的示例性方法的执行以及它们的存储器状态的执行路径图;图3A和3B示出了依照各实施例对调试工具中两个不同的时间点处图2A的示例性代码中的语句之一的分析;图4A示出了对有两个外部系统交互的图2A的示例性代码中的另一方法的分析;图4B示出了依照各实施例调试工具如何可以显示作为图2A的代码的一部分被执行的外部系统语句指回到代码的调用树中的哪里;图5是示出关于在执行时步骤处所执行的方法的完整的执行路径以及变量的示例性用户界面的图示;图6是其中可实现依照各实施例的系统的联网环境;图7其中可实现各实施例的示例性计算操作环境的框图;以及图8示出了依照各实施例基于捕捉和重放应用程序的执行来调试应用程序的进程的逻辑流程图。具体实施方式如以上简要描述的,可通过在整个应用程序的执行过程中记录应用程序的存储器状态和输入/输出(I/O)-外部系统交互来捕捉应用程序的执行。可在可配置点处捕捉应用程序的存储器状态。可通过记录外部系统调用和相关的代码语句来捕捉外部系统-I/O交互。可启用重放在执行路径上的所选方向上捕捉的信息移动。在以下详细描述中,参考了构成其一部分并作为说明示出了各具体实施例或示例的附图。可组合这些方面,可利用其他方面,可作出结构上的改变,而不背离本专利技术的精神或范围。由此,以下详细描述并不旨在限制,本专利技术的范围由所附权利要求及其等效方案所定义。尽管将在结合在个人计算机上的操作系统上运行的应用程序执行的程序模块的一般上下文中描述了各实施例,但是本领域的技术人员会认识到也可结合其他程序模块来实现各方面。一般而言,程序模块包括执行特定任务或实现特定的抽象数据类型的例程、程序、组件、数据结构和其它类型的结构。此外,本领域的技术人员可以理解,各实施例可以使用其它计算机系统配置来实践,这些其它计算机系统配置包括手持式设备、多处理器系统、基于微处理器或可编程的消费电子产品、小型计算机、大型计算机以及可比的计算设备等。各实施例也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可位于本地和远程计算机存储设备两者中。各实施例可以被实现为计算机实现的进程、计算系统或诸如计算机程序产品或计算机可读介质的制品。计算机程序产品可以是计算机系统可读并且编码包括使得计算机或计算系统执行示例性进程的指令的计算机程序的计算机存储介质。计算机可读存储介质可以例如经由易失性计算机存储器、非易失性存储器、硬盘、闪存驱动器、软盘或紧致盘以及可比的(comparable)介质中的一个或多个来实现。在整个说明书中,术语“平台”可以是用于管理远程应用程序服务和相关的网络通信的软件和硬件组件的组合。平台的示例包括,但不限于,在多个服务器上执行的主存的服务、在单个服务器上执行的应用程序以及可比的系统。术语“服务器”一般指通常在联网环境中执行一个或多个软件程序的计算设备。然而,服务器也可以被实现为在一个或多个计算设备上执行的虚拟服务器(软件程序),该虚拟服务器被看作网络上的服务器。关于这些技术和示例性操作的更多细节将在下文中提供。图1包括示出计算设备在访问外部系统期间捕捉和重放应用程序的执行的概念图。用户122可与系统102交互以参加调试会话。在调试会话期间,系统102可执行应用程序110。应用程序可在执行其方法期间与存储器栈112交互以存储其方法变量。应用程序也可与外部系统114交互。外部系统可以是例如数据库。在执行期间,用户可用启用调试器来捕捉执行(118)。调试器可与应用程序110、应用程序的存储器栈112以及外部系统114通信以捕捉应用程序的执行。在完成捕捉之后,在将来的时间帧中,用户可启用调试器来重放应用程序的执行(116)。用户也可以将捕捉保存到介质中并且让另一用户在完全不同的计算机上重放捕捉,而无需相同的组件(例如无需存在外部系统)。在示例性实施例中,调试器可记录在应用程序的执行期间采取的代码路径。调试器也可在可配置时间点处捕捉存储器状态。可配置点的示例可包括,但不限于,代码语句、方法入口点以及方法出口点。调试器也可记录与外部系统的交互。示例性外部系统可包括数据库或网络。调试器也可捕捉导致与外部系统交互的应用程序的代码语句。作为输出,调试器可以向用户提供分析显示,该分析显示可示出执行什么代码、在可配置的时间点上的是什么变量值以及代码语句是如何与外部系统交互相关的。示例性代码语句—外部系统交互相关可包括代码语句如何直接或间接地导致数据库查询。如上所述,在另一实施例中,调试器可捕捉相关的存储器状态,诸如在方法入口和/或出口或在每个语句之前的方法的变量值。调试器也可分析应用程序的捕捉的执行并且确定调用了哪些方法以及在每个时间点处变量值会是什么。调试器还可捕捉与一组可配置的外部系统的交互,外部系统的示例可以是数据库。调试器可分析应用程序的捕捉的执行以将交互与代码语句相关。在应用程序的执行期间与数据库交互的示本文档来自技高网...
基于执行捕捉和重放的调试

【技术保护点】
1.一种至少部分在计算设备中执行的用于通过捕捉和重放执行来调试软件应用程序的方法,所述方法包括:开始所述应用程序的执行(810);捕捉所述应用程序的执行路径;由调试器捕捉在可配置点处的所述应用程序的执行的存储器状态(820);由所述调试器捕捉所述应用程序的外部系统交互(830);在所述调试器处接收重放请求(840);以及基于所请求的时间点(850)重放所述应用程序的执行。

【技术特征摘要】
2010.06.15 US 12/815,5461.一种至少部分在计算设备中执行的用于通过捕捉和重放执行来调试软件应用程序的方法,所述方法包括:开始所述应用程序的执行;捕捉所述应用程序的执行路径;由调试器捕捉在可配置点处的所述应用程序的执行的存储器状态(820);由所述调试器捕捉所述应用程序的外部系统交互(830);在所述调试器处接收重放请求(840);在完成捕捉之后基于所请求的时间点重放所述应用程序的执行;以及提供对第三方应用程序的访问以便以下述至少一种格式显示所述外部系统交互:基于所述外部系统交互的个别元素的用彩色编码且行返回的格式。2.如权利要求1所述的方法,其特征在于,捕捉所述存储器状态(820)还包括捕捉与所述应用程序的每个方法相关联的多个变量值。3.如权利要求2所述的方法,其特征在于,捕捉所述存储器状态(820)还包括捕捉在应用程序的执行期间持有所述多个变量值的存储器栈(112)。4.如权利要求2所述的方法,其特征在于,在以下集合中的至少一个捕捉所述存储器状态:方法入口(303)、方法出口(313)以及语句的开始(314)。5.如权利要求1所述的方法,其特征在于,捕捉所述外部系统交互还包括捕捉外部系统语句的执行以及将所执行的外部系统语句相关到所述应用程序的代码语句。6.如权利要求1所述的方法,其特征在于,从启动到结束重放所述应用程序的执行。7.如权利要求1所述的方法,其特征在于,在用户所选的点之间重放所述应用程序的执行。8.如权利要求1所述的方法,其特征在于,重放所述应用程序的执行还包括显示所选的方法、与所选方法相关联的外部系统语句、与所选方法相关联的一个或多个变量值以及在所选方法的执行中在所选时间点处与所选方法相关联的调用栈。9.一种用于通过捕捉和重放执行来调试软件应用程序的计算设备,所述计算设备包括:存储可执行指令和应用程序的变量值的存储器;耦合到所述存储器上的处理器,所述处理器执行应用程序和调试器,其中所述调试器被配置...

【专利技术属性】
技术研发人员:J·斯泰尔斯T·赫杰斯伯格J·法尔克伯
申请(专利权)人:微软公司
类型:发明
国别省市:US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1