使用轻量进程快照的功能评估的制作方法_4

文档序号:8207706阅读:来源:国知局
包括以存储诸如计算机可读的指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不仅限于,RAM、ROM, EEPROM,闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁存储设备,或可以用来存储所需信息并可以被计算机700访问的任何其他介质。通信介质通常以诸如载波或其他传输机制的已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任意信息传送介质。术语“已调制数据信号”是指其一个或多个特征以这样的方式设置或改变以便在信号中对信息进行编码的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。上面各项中的任何项的组合也包括在计算机可读介质的范围内。计算机可读介质可以作为计算机程序产品,诸如存储在计算机存储介质上的软件,来实现。
[0070]数据存储器或系统存储器702包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)和随机存取存储器(RAM)。基本输入/输出系统(B1S)通常存储在ROM中,包含了诸如在启动过程中帮助在计算机700内的元件之间传输信息的基本例程。RAM通常包含处理单元701可立即访问和/或目前正在由处理单元701操作的数据和/或程序模块。作为示例而非限制,数据存储器702保存了操作系统、应用程序、以及其它程序模块和程序数据。
[0071]数据存储器702也可以包括其他可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,数据存储器702可以是从不可移动、非易失性磁介质中读取或向其写入的硬盘驱动器,从可移动、非易失性磁盘中读取或向其写入的磁盘驱动器,以及从诸如⑶ROM或其他光学介质等可移动、非易失性光盘中读取或向其写入的光盘驱动器。可在示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。以上描述并在图7中示出的驱动器及其相关联的计算机存储介质为计算机700提供了对计算机可读指令、数据结构、程序模块和其他数据的存储。
[0072]用户可通过用户界面705或诸如平板或者电子数字化仪、话筒、键盘和/或定点设备(通常指的是鼠标、跟踪球或触摸垫)之类的其他输入设备输入命令和信息。其他输入设备可以包括操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。另外,声音输入,使用手或手指的手势输入,或其他天然的用户界面(NUI)也可以与诸如麦克风、摄像机、平板、触摸板、手套,之类的输入设备,或其他传感器一起使用。这些及其他输入设备常常通过耦合到系统总线703的用户输入接口 705连接到处理单元701,但是,也可以通过其他接口和总线结构,如并行端口、游戏端口、通用串行总线(USB)端口来进行连接。监视器706或其他类型的显示设备也通过诸如视频接口之类的接口连接至系统总线703。监视器706也可以与触摸屏面板等集成。注意到监视器和/或触摸屏面板可以在物理上耦合至其中包括计算设备700的外壳,诸如在平板型个人计算机中。此外,诸如计算设备700等计算机还可以包括其他外围输出设备,诸如扬声器和打印机,它们可以通过输出外围接口等连接。
[0073]计算机700可以使用到一个或多个远程设备(如远程计算机)的逻辑连接,以在联网或云计算环境中操作。远程计算机可以是个人计算机、服务器、路由器、网络PC、对等设备或其他公共网络节点等等,并通常包括上文参考计算机700所描述的许多或全部元件。图7中所示的逻辑连接包括一个或多个局域网(LAN)和一个或多个广域网(WAN),但也可以包括其他网络。这些联网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。
[0074]当用于联网的或云计算环境中时,计算机700通过网络接口或适配器707连接到公众或专用网络。在某些实施例中,还有调制解调器或用于通过网络建立通信的其他装置。可为内置或可为外置的调制解调器可以经由网络接口 707或其他合适的机制连接至系统总线703。诸如包括接口和天线的无线网络组件可以通过诸如接入点或对等计算机之类的合适的设备连接到网络。在联网环境中,参考计算机700所描述的程序模块,或其某些部分,可以存储在远程存储器存储设备中。可以理解,所示的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其他手段。
[0075]尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。
【主权项】
1.在计算环境中,一种调试目标进程的方法,所述方法包括: 从所述目标进程生成轻量进程快照,所述轻量进程快照和目标进程被允许独立地运行;以及 针对所述轻量进程快照,执行功能评估。
2.如权利要求1所述的计算机实现的方法,其特征在于,所述轻量进程快照的所述功能评估的副作用与所述目标进程隔离。
3.如权利要求1所述的计算机实现的方法,还包括: 标识何时所述轻量进程快照由于所述功能评估的副作用或因为所述轻量进程快照已被损坏而不再表示所述目标进程;以及 创建所述目标进程的新的轻量进程快照。
4.如权利要求1所述的计算机实现的方法,还包括: 当执行所述功能评估时检测死锁; 从所述目标进程生成第二轻量进程快照;以及 针对所述第二轻量进程快照执行功能评估,同时允许所有线程在所述功能评估期间执行,其中,所述目标进程中的所述线程被允许执行以避免当遇到线程间的依赖性时死锁所述目标进程。
5.如权利要求1所述的计算机实现的方法,还包括: 允许所述轻量快照进程中的所有线程在所述功能评估期间执行以避免死锁所述快照进程。
6.如权利要求1所述的计算机实现的方法,还包括: 创建主存所述目标进程的机器的轻量机器快照; 在所述轻量机器快照上运行所述轻量进程快照; 针对在所述轻量机器快照上运行的所述轻量进程快照,执行所述功能评估;以及 允许所述目标进程中的所有线程在所述功能评估期间执行以避免当遇到线程间的依赖性时死锁所述目标进程。
7.如权利要求6所述的计算机实现的方法,其特征在于,所述功能评估对所述轻量机器快照的副作用与所述目标进程并与所述目标进程的内核隔离。
8.在计算环境中,一种包括用于调试目标进程的功能的计算机系统,所述计算机系统包括:一个或多个处理器;一个或多个计算机可读介质;实现为存储在所述计算机可读介质上的计算机可执行指令的一个或多个计算机模块,所述计算机可执行指令在由一个或多个处理器执行时,导致所述处理器执行下列各项: 从所述目标进程生成轻量进程快照,所述轻量进程快照和目标进程被允许独立地运行;以及 针对所述轻量进程快照,执行功能评估。
9.如权利要求8所述的计算机系统,其特征在于,还包括: 标识何时所述轻量进程快照由于所述功能评估的副作用或当所述轻量进程快照已被损坏而不再表示所述目标进程;以及 创建所述目标进程的新的轻量进程快照。
10.如权利要求8所述的计算机系统,其特征在于,还包括:创建主存所述目标进程的机器的轻量机器快照;在所述轻量机器快照上运行所述轻量进程快照;以及针对在所述轻量机器快照上运行的所述轻量进程快照,执行所述功能评估。
【专利摘要】调试程序创建被调试程序目标进程的轻量进程快照,并针对副本执行进程内的或功能评估(func-eval)检查。这允许被调试程序进程中的大多数状态保持原样,因为由func-eval作出的更改是进程快照本地的。可以对进程快照执行对原始被调试程序进程来说太过破坏性的调试程序操作,而不会威胁真正的进程。进程快照允许调试程序在隔离被调试程序进程并且不丢失原始被调试程序进程的实际状态的同时执行func-eval。当当前快照由于func-eval副作用而损坏时,创建被调试程序进程的新进程快照。调试程序还可以使用主机被调试程序机器的轻量机器快照,并针对该机器快照执行func-eval,以进一步隔离内核及其他副作用。
【IPC分类】G06F11-14, G06F11-30, G06F11-36
【公开号】CN104520820
【申请号】CN201380041514
【发明人】J·戴维斯, T·H·金
【申请人】微软公司
【公开日】2015年4月15日
【申请日】2013年8月1日
【公告号】EP2880537A1, US20140040897, WO2014025595A1
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1