状态转变的诊断制造技术

技术编号:12864336 阅读:80 留言:0更新日期:2016-02-13 13:58
公开了一种用于诊断与控制转移有关的计算机可读指令的方法。在计算机可读指令的运行时期间将逻辑操作内的执行单元的状态转变记入日志。逻辑操作的诊断信息与状态转变相关联。提供状态转变和相关联的诊断信息以供在计算机可读指令中的所选点处进行检索。

【技术实现步骤摘要】
【国外来华专利技术】【专利说明】状态转变的诊断 置量 程序调试或调试是发现和减少计算机程序或电子硬件片断中的错误或缺陷数目 以使得计算机程序如预期那样表现的一种方法过程。一般来说,调试是耗时且令人厌烦的 任务,并且程序员常常使用用于监视计算机程序的执行以及执行程序调试的软件工具,诸 如对被调试进程进行操作的调试程序等。在程序调查期间,程序员可以停止被调试进程的 执行,收集数据值,或者基于变量的值以其他方式影响被调试进程的执行。 调试技术常常力图想要跟上开发技术中的改进。软件开发技术已经进展到向许多 开发者提供容易地创建具有丰富用户体验的程序的附加工具,这些附加工具适配成用于具 有以曾经仅对最高级开发者可用的方式针对所选用户群的定制的多个平台和系统。这些开 发技术中的许多技术出于许多原因已经使得传统调试过程变得更困难。因而,软件开发者 常常陷入是否要利用需要极大调试成本并且可能破坏将产品快速带给消费者的能力的开 发技术来实现新的软件的难题。
技术实现思路
本概述被提供以便以简化形式介绍概念的选集,所述概念将在以下详细描述中进 一步描述。本
技术实现思路
并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨 在用于限定所要求保护的主题的范围。 在其中发生中断的代码片断的源头在执行期间实际发生问题时是未知的情形中, 对代码进行调试或故障排除是困难的。这一信息通常不再可供检索和检查,并且因为异步 编程的特性而常常已经从调用栈中出栈,在异步编程中,例程负责完成长期运行的工作,该 长期运行的工作与启动该长期运行的工作的例程或工作并发且分开地运行。在一些示例 中,诸如在涉及多个线程的应用中,相关信息可能在栈上可用,但难以跨许多可用线程的特 定子集来定位。另外,尽管这一信息可能存在,但与信息片断有关的序列和定时可能丢失。 本公开包括一种关联与其中运行时问题往往在稍后才体现的运行时人工制品的 源头有关的诊断信息的方法。示例人工制品包括回调、用于插入文档对象模型(DOM)元素 的事件处理程序、以及控制转移的其他示例。在一个示例中,一个逻辑操作(诸如异步操 作)内的执行单元的状态转变在计算机可读指令的运行时期间被记入日志。诊断信息(诸 如调用栈帧)与该逻辑操作相关联。记入日志的状态转变和相关联的诊断信息被提供以供 在所选点处进行检索,该所选点诸如在中断点处或者在抛出异常时。出于解说而使用异步 操作,但各示例可适用于其他的控制转移。 开发者在对照那些目标进行标准的故障排除操作时可以咨询诊断信息,标准的故 障排除操作诸如命中受影响的回调中的中断点或者检查处于非正确状态的DOM元素。诊断 信息可被用来执行标准调试和故障排除操作(诸如跳转到代码)以便对表示问题的根本原 因的始发代码进行故障排除。所有对象构建的调用栈位置也可被收集以便协助存储器剖 析、协助调试存储器泄漏等。 附图简沐 包括附图来提供了对各实施例的进一步理解,且这些附图被合并在本专利技术书内并 构成其一部分。附图示出各实施例,并且与说明书一起用于解释本专利技术的原理。其他实施 例和各实施例的许多预期优点将随着参考下面的详细描述进行更好的理解而得到认识。附 图的元素不一定相对于彼此而缩放。类似的附图标号指定对应的类似部分。 图1是示出计算设备的示例的框图。 图2是可被配置成在图1的计算设备上运行的用于诊断状态转变的方法的框图。 图3是示出被配置成在图1的一个或多个计算设备上运行的诊断工具的示例的框 图。 图4是可被配置成在图1的计算设备上运行的用于诊断状态转变的方法的框图。 详细描沐 在以下具体实施例中,对附图进行了参考,附图构成了实施例的一部分且在其中 作为示例示出了可在其中实践本专利技术的各特定实施例。可以理解,可以利用其他实施例,并 且可以作出结构上或逻辑上的变化而不背离本专利技术的范围。因此,以下详细描述并不旨在 限制,并且本专利技术的范围由所附权利要求来限定。应理解,此处描述的各示例性实施例的特 征可相互组合,除非另外具体注明。 图1示出可以在操作环境中使用并且用于主存或运行计算机应用的示例性计算 机系统,该计算机应用被包括在存储计算机可执行指令的一个或多个计算机可读存储介质 上,该计算机可执行指令用于控制计算机系统(诸如计算设备)执行用于将诊断信息联同 状态转变与应用进行相关联的过程。计算机系统还可用于开发和/或运行具有用于评估从 应用的运行时检索到的诊断信息的进程的计算机应用。 示例性计算机系统包括计算设备,诸如计算设备100。在一基本硬件配置中,计算 设备100通常包括具有一个或多个处理单元(即,处理器102)的处理器系统以及存储器 104。作为示例,处理单元可包括但不限于一个芯片上的两个或更多个处理核或者两个或更 多个处理器芯片。在一些示例中,计算设备还可具有一个或多个附加的处理或专用处理器 (未示出)以执行从处理器102卸载的处理功能,附加的处理或专用处理器诸如用于图形处 理器单元上的通用计算的图形处理器。存储器104可以布置在分层结构中并且可包括一级 或多级高速缓存。取决于计算设备的配置和类型,存储器104可以是易失性的(如随机存 取存储器(RAM))、非易失性的(诸如只读存储器(R0M)、闪存等)或两者的某种组合。该基 本配置在图1中由虚线106来例示。计算设备100可以采用若干形式中的一种或多种。此 类形式包括平板、个人计算机、工作站、服务器、手持式设备、消费者电子设备(诸如视频游 戏控制台)、或其他,并且可以是独立设备或被配置为计算机网络、计算机群集、云服务基础 结构或其他的一部分。 计算设备100还可具有附加特征或功能。例如,计算设备100还可包括附加存储。 此类存储可以是可移动和/或不可移动的,并且可包括但不限于,磁盘或光盘或固态存储 器,或者闪速存储设备,诸如可移动存储108和不可移动存储110。计算机存储介质包括以 存储诸如计算机可读的指令、数据结构、程序模块或其他数据之类的信息的任何合适的方 法或技术实现的易失性和非易失性、可移动和不可移动介质。存储器104、可移动存储108 和不可移动存储110全部都是计算机存储介质的示例。计算机存储介质包括,但不限于, RAM、ROM、EEPR0M、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、 磁带盒、磁带、磁盘存储或其它磁性存储设备、通用串行总线(USB)闪存驱动器、闪存卡、或 能用于存储所需信息且可以由计算设备100访问的任何其它存储介质。任何这样的计算机 存储介质都可以是计算设备100的一部分。 计算设备100常常包括一个或多个输入和/或输出连接,诸如USB连接、显示器端 口、专用连接、以及用于连接到各种设备以向计算设备提供输入和输出的其他连接。输入设 备112可包括诸如键盘、定点设备(例如鼠标)、笔、语音输入设备、触摸输入设备或其他等 设备。输出设备111可包括诸如显示器、扬声器、打印机等设备。 计算设备100常常包括允许计算设备100与其它计算机/应用115进行通信的一 个或多个通信连接114。示例通信连接可包括但不限于,以太网接口、无线接口、总线接口、 存储区域网络接口、专用接口。通信连接可以被用于将计算设备100耦合到计算机网络,所 述计算机网络可以根据各种各样的特性(例如拓本文档来自技高网...

【技术保护点】
一种用于诊断计算机可读指令的方法,所述方法包括:在所述计算机可读指令的运行时期间将逻辑操作内的执行单元的状态转变记入日志;将所述逻辑操作的诊断信息与所述状态转变相关联;以及提供所述状态转变和相关联的诊断信息以供在所述计算机可读指令中的所选点处进行检索。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:M·C·范宁F·G·T·I·安德鲁D·J·莫斯利S·卡尔维特A·R·斯特兰德T·莱斯J·T·费希尔R·A·帕韦泽T·C·沃尔G·米斯凯利H·L·皮尔森三世C·艾德蒙兹E·H·奥米亚K·V·纳迪希F·J·翁Z·高A·斯塔修克
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国;US

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

1