[发明专利]使用外部调试基础结构的进程内调试有效
申请号: | 200880017200.0 | 申请日: | 2008-05-16 |
公开(公告)号: | CN101681280A | 公开(公告)日: | 2010-03-24 |
发明(设计)人: | J·M·斯托尔;J·斯特拉尼克;R·拜尔斯 | 申请(专利权)人: | 微软公司 |
主分类号: | G06F11/00 | 分类号: | G06F11/00 |
代理公司: | 上海专利商标事务所有限公司 | 代理人: | 顾嘉运;钱静芳 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 使用 外部 调试 基础 结构 进程 | ||
背景
在软件被开发时,软件可能不像编程者预期的那样工作。可使用调试器来 分析程序的行为和/或来使用不同的执行场景进行实验,这可以提供关于非预期 行为的来源的线索。
调试器可以是“进程外”或“进程内”的。进程外调试器是从正被调试的 程序(被调试程序)在其中执行的进程外部作用于该被调试程序的应用程序。 被调试者向进程外调试器展示检查和控制模型,这提供了调试器可从中检查被 调试程序的进程并操纵该被调试程序的执行的丰富接口。现代执行环境通常提 供便于实现进程外调试器的基础结构。进程内调试器被内置到其中开发代码的 开发软件中。例如,命令行语言解释器可以具有被硬编码到该解释器中的调试 命令,以使该调试命令可从该解释器的命令行界面来访问。
进程内调试器提供简单的用户体验,这表现在用户可通过一个用户界面在 一个进程中编写并调试代码,且调试支持与执行环境集成在一起。另一方面, 进程外调试器使用若干执行环境提供来支持进程外模型的调试基础结构。提供 进程内用户体验的调试器未利用此基础结构。
概述
进程内调试用户体验可使用支持进程外调试的调试基础结构来实现。提供 用于各种调试任务(例如,检查符号、设置断点等)的命令的调试模块可被加 载到诸如针对一语言的命令行解释器等开发程序中。该调试模块使用在与开发 程序分开的进程中运行的助手程序。该助手程序作为进程外调试器附连到开发 程序在其中运行的进程。从开发程序在其中运行的进程的角度来看,该助手进 程就像进程外调试器一样,且该助手进程因此能够利用进程外调试器会用来检 查并操纵被调试程序的调试基础结构。在用户通过由调试模块所提供的功能中 的一个来发出调试命令时,该模块中的代码访问助手进程用以协助实现所请求 的命令。例如,如果用户发出设置断点的命令,则调试模块访问助手进程以使 用来自调试基础结构的原语来设置该断点。
开发程序可以提供接收并处理用户输入的读取-求值-打印循环(REPL 循环)。可被输入的用户输入的一个示例是调用要被调试的程序的命令。当在 程序中发生调试事件时,助手程序被通知并调用开发程序中的REPL循环的第 二实例。将该循环压入被调试程序的框架之上的执行栈,这保留了被调试程序 的状态以供检查和操纵。此外,REPL循环的第二实例提供用户可用于继续录 入输入并与开发程序交互的机制。REPL循环的第二实例可通过调试基础结构 的诸如函数求值(func-eval)原语等原语、或调试器可用于调用被调试程序中 的函数的其它机制来调用。
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的 一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特 征,也不旨在用于限定所要求保护的主题的范围。
附图简述
图1是其中可以发生软件开发的执行环境的框图。
图2是使用具有阴影外部助手进程的进程内调试器的过程的流程图。
图3是可使用调试器执行的各种动作的流程图。
图4是示例程序的框图。
图5是从调试器继续执行程序的过程的流程图。
图6是解析符号名称的过程的流程图。
图7是可用于实现此处所述的主题的各组件的框图。
详细描述
概览
进程内调试通常提供简单的用户体验:用户可从用于输入并执行代码的同 一命令行界面来输入调试命令。进程内调试一般通过将调试命令或要由调试功 能所使用的挂钩硬编码到实现命令行处理器的软件中来实现。现代执行环境通 常提供可用于实现进程外调试器的调试基础结构,且进程内调试的实现一般不 利用此现有基础结构(尽管提供进程内调试的系统可能具有其自己的调试基础 结构)。然而,使用支持进程外调试的基础结构来实现进程内调试体验是可能 的。
在进程外调试中,调试器可以是驻留在与正被调试的程序(被调试程序) 分开的进程中的应用程序。因此,进程外调试应用程序从外部角度来查看被调 试程序,且它能够从被调试程序的进程之外来检查并操纵该被调试程序。许多 执行环境所提供的调试基础结构可基于调试器应用程序具有此外部角度的假 设来设计,这使得使用此类基础结构来实现进程内调试更复杂。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200880017200.0/2.html,转载请声明来源钻瓜专利网。