[发明专利]基于进程快照的诊断生产应用有效
| 申请号: | 201480062946.9 | 申请日: | 2014-11-14 |
| 公开(公告)号: | CN105745626B | 公开(公告)日: | 2019-05-14 |
| 发明(设计)人: | J·戴维斯 | 申请(专利权)人: | 微软技术许可有限责任公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F11/14 |
| 代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 杨洁 |
| 地址: | 美国华*** | 国省代码: | 美国;US |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 进程 快照 诊断 生产 应用 | ||
1.一种分析正在执行的进程的方法,所述方法包括:
访问开发者机器上正在执行的进程的源代码;
在所述源代码中定义一个或多个快照点,所述快照点用所述源代码中的位置以及一个或多个条件语句来定义;
生成包括一个或多个快照点的所述定义的收集计划;
将收集计划发送到运行正在执行的进程的服务器;
修改所述服务器上的正在执行的进程的代码,以包括用于每次快照点的所述一个或多个条件语句被满足时从正在执行的进程中创建快照的指令,其中所述快照包括使用页表复制和写时复制操作的对所述正在执行的进程的克隆,并且其中所述快照在不停止所述服务器上的正在执行的进程的情况下在命中-计数条件被满足时创建;
在对应快照点的一个或多个条件语句被满足时生成快照;
将诊断工具与所述快照相关联;以及
使用所述诊断工具从所述快照中收集数据,而不影响所述正在执行的进程。
2.如权利要求1所述的方法,其特征在于,使用集成开发环境(IDE)或开发者机器上的编辑器来访问所述源代码。
3.如权利要求1所述的方法,其特征在于,所述源代码中的所述一个或多个快照点被定义为断点。
4.如权利要求1所述的方法,其特征在于,通过使用所述服务器上的剖析器API来修改所述正在执行的进程的所述代码。
5.如权利要求1所述的方法,其特征在于,通过所述服务器上的中间语言(IL)-重写来修改所述正在执行的进程的所述代码。
6.如权利要求1所述的方法,其特征在于,通过将机器代码注入所述服务器上的本机代码中来修改所述正在执行的进程的所述代码。
7.如权利要求1所述的方法,其特征在于,所述正在执行的进程的所述代码运行在经解释的环境中,所述方法还包括:
由解释器评估快照点条件;以及
在所述快照点条件评估为真时由所述解释器创建所述快照。
8.如权利要求1所述的方法,其特征在于,进一步包括:
从所述正在执行的进程中生成一个或多个附加的快照;以及
比较来自所述快照中任意快照的数据以标识随着时间的存储器使用方面的改变。
9.在计算环境中的一种包括用于调试正在执行的进程的功能的计算机系统,所述计算机系统包括:
一个或多个处理器;
一个或多个计算机可读介质;
被作为存储在所述计算机可读介质上的计算机可执行指令来实现的一个或多个计算机模块,所述计算机可执行指令在由一个或多个处理器执行时使得所述处理器如下执行:
在运行所述进程的生产服务器处接收正在执行的进程的快照收集计划,所述快照收集计划标识所述正在执行的进程的源代码中的一个或多个快照点,所述快照点用所述源代码中的位置以及一个或多个条件语句来定义;
修改所述生产服务器上的正在执行的进程的代码,以包括用于每次快照点的所述一个或多个条件语句被满足时从正在执行的进程中创建快照的指令;
在对应快照点的所述一个或多个条件语句满足时生成所述正在执行的进程的快照,所述快照包括使用页表复制和写时复制操作的对所述正在执行的进程的克隆,其中所述快照在不停止所述生产服务器上的正在执行的进程的情况下在命中-计数条件被满足时创建;
将诊断工具与所述快照相关联;以及
使用所述诊断工具从所述快照中收集数据,而不影响所述正在执行的进程。
10.如权利要求9所述的计算机系统,其特征在于,所述快照收集计划从用集成开发环境(IDE)或开发者机器上的编辑器接收。
11.一种包括用于执行如权利要求1-8中的任一项所述的方法的装置的计算机系统。
12.一种具有指令的计算机可读存储介质,所述指令在被执行时使机器执行如权利要求1-8中的任一项所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201480062946.9/1.html,转载请声明来源钻瓜专利网。





