[发明专利]一种组件对象模型对象的监控方法和装置有效
申请号: | 201210061013.0 | 申请日: | 2012-03-09 |
公开(公告)号: | CN103309796A | 公开(公告)日: | 2013-09-18 |
发明(设计)人: | 常青 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F9/46 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 谢安昆;宋志强 |
地址: | 518044 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 组件 对象 模型 监控 方法 装置 | ||
1.一种组件对象模型COM对象的监控方法,其特征在于,该方法包括:
为待监控COM对象的虚函数创建拦截函数;
通过所述拦截函数调用所述虚函数,并将在该调用过程中的所述待监控COM对象的引用计数操作记录及所述引用计数操作对应的调用栈信息保存到COM对象跟踪表中。
2.根据权利要求1所述的方法,其特征在于,在为待监控COM对象的虚函数创建拦截函数之前,还包括:
创建COM对象跟踪表。
3.根据权利要求1-2任一所述的方法,其特征在于,所述为待监控COM对象的虚函数创建拦截函数,包括:
分别为待监控COM对象的虚函数AddRef和Release创建拦截函数。
4.根据权利要求3所述的方法,其特征在于,所述通过所述拦截函数调用所述虚函数,并将在该调用过程中的所述待监控COM对象的引用计数操作记录及所述引用计数操作对应的调用栈信息保存到COM对象跟踪表中,包括:
所述虚函数AddRef的拦截函数调用该虚函数AddRef,并将在该调用过程中的引用计数加1操作记录以及与引用计数加1对应的调用栈信息保存到COM对象跟踪表中;所述虚函数Release的拦截函数调用该虚函数Release,并当该COM对象的引用计数不为零时,将在该调用过程中的引用计数减1操作记录以及与引用计数减1对应的调用栈信息保存到该COM对象跟踪表中,当该COM对象的引用计数为零时,将该待监控COM对象从COM对象跟踪表中删除。
5.根据权利要求1-4任一所述的方法,其特征在于,所述COM对象跟踪表至少包括以下项目:指向待监控COM对象的内存地址的对象指针、引用计数操作记录以及与引用计数操作相关的调用栈信息。
6.根据权利要求3所述的方法,其特征在于,该方法进一步包括:
将待监控COM对象的虚函数AddRef的拦截函数伪装为stdcall函数,并将待监控COM对象的虚函数Release的拦截函数伪装为stdcall函数。
7.根据权利要求6所述的方法,其特征在于,该方法进一步包括:
在所述待监控COM对象的虚函数AddRef的拦截函数中保存所述虚函数AddRef的地址,并在所述待监控COM对象的虚函数Release的拦截函数中保存所述虚函数Release的地址。
8.根据权利要求1-2任一所述的方法,其特征在于,将引用计数为零的COM对象从所述COM对象跟踪表中删除。
9.一种COM对象的监控装置,其特征在于,该装置包括拦截函数创建模块和监控模块,其中:
拦截函数创建模块,用于为待监控COM对象的虚函数创建拦截函数;
监控模块,用于通过所述拦截函数调用所述虚函数,并将在该调用过程中的所述待监控COM对象的引用计数操作记录及所述引用计数操作对应的调用栈信息保存到COM对象跟踪表中。
10.根据权利要求9所述的装置,其特征在于,还包括:
COM对象跟踪表创建模块,用于创建COM对象跟踪表。
11.根据权利要求9-10任一所述的装置,其特征在于:
拦截函数创建模块,用于分别为待监控COM对象的虚函数AddRef和Release创建拦截函数。
12.根据权利要求11所述的装置,其特征在于:
监控模块,用于通过虚函数AddRef的拦截函数调用该虚函数AddRef,并将在该调用过程中的引用计数加1操作记录以及与引用计数加1对应的调用栈信息保存到COM对象跟踪表中;并通过所述虚函数Release的拦截函数调用该虚函数Release,当该COM对象的引用计数不为零时,将在该调用过程中的引用计数减1操作记录以及与引用计数减1对应的调用栈信息保存到COM对象跟踪表中,当该COM对象的引用计数为零时,将该待监控COM对象从COM对象跟踪表中删除。
13.根据权利要求9-12任一所述的装置,其特征在于,所述COM对象跟踪表至少包括以下项目:指向待监控COM对象的内存地址的对象指针、引用计数操作记录及与引用计数操作相关的调用栈信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210061013.0/1.html,转载请声明来源钻瓜专利网。