一种进程监控方法和装置的制造方法_4

文档序号:8223394阅读:来源:国知局
9]将PHP解释器的操作执行函数替换为预置的监控函数;以及
[0140]利用所述监控函数执行所述PHP解释器针对进程编译得到的操作,且利用所述监控函数监控所述操作的执行过程中的函数信息。
[0141]A2、如A I所述的方法,所述利用所述监控函数监控所述操作的执行过程中的函数信息的步骤进一步包括:
[0142]根据待监控信息对应变量相对预置全局变量的偏移量,获取所述变量的地址;以及
[0143]利用所述监控函数,监控所述变量的地址在所述操作的执行过程中的信息。
[0144]A3、如Al所述的方法,在所述利用所述监控函数执行所述PHP解释器针对进程编译得到的操作,且利用所述监控函数监控所述操作的执行过程中的函数信息的步骤之前,所述方法还包括:
[0145]通过读取共享内存,判断所述进程对应的监控开关是否开启;
[0146]在所述进程对应的监控开关开启时,利用所述监控函数执行所述PHP解释器针对进程编译得到的操作,且利用所述监控函数监控所述操作的执行过程中的函数信息;
[0147]将所述函数信息写入所述共享内存,由命令行工具从所述共享内存中读取所述函数信息。
[0148]A4、如A3所述的方法,所述将所述函数信息写入所述共享内存的步骤,包括:
[0149]将所述函数信息写入所述共享内存中所述进程对应的内存映射文件。
[0150]A5、如Al或A2或A3或A4所述的方法,所述方法还包括:
[0151]利用pstack得到进程对应PHP解释器的调用栈信息;以及
[0152]依据所述PHP解释器的全局成员变量,在所述PHP解释器的调用栈信息中查找所述PHP解释器执行的各操作对应的函数调用栈信息。
[0153]A6、如A5所述的方法,所述依据所述PHP解释器的全局变量,在所述PHP解释器的调用栈信息中查找所述PHP解释器执行的各操作对应的函数调用栈信息的步骤进一步包括:
[0154]依据PHP解释器的操作执行的上下文环境,得到所述PHP解释器执行的当前操作的操作执行信息;以及
[0155]依据所述PHP解释器的全局变量和所述当前操作的操作执行信息,在所述PHP解释器的调用栈信息中查找所述PHP解释器执行的当前操作对应的函数调用栈信息。
[0156]A7、如A3所述的方法,所述监控开关的开启和关闭由所述命令行工具控制。
[0157]本发明还公开了 B8、一种进程监控装置,包括:
[0158]替换模块,用于将PHP解释器的操作执行函数替换为预置的监控函数;以及
[0159]监控模块,用于利用所述监控函数执行所述PHP解释器针对进程编译得到的操作,且利用所述监控函数监控所述操作的执行过程中的函数信息。
[0160]B9、如权利要求B8所述的装置,所述监控模块,进一步包括:
[0161]地址获取子模块,用于根据待监控信息对应变量相对预置全局变量的偏移量,获取所述变量的地址;以及
[0162]监控子模块,用于利用所述监控函数,监控所述变量的地址在所述操作的执行过程中的信息。
[0163]BlOJn B8所述的装置,所述装置还包括:
[0164]判断模块,用于在所述利用所述监控函数执行所述PHP解释器针对进程编译得到的操作,且利用所述监控函数监控所述操作的执行过程中的函数信息的操作之前,通过读取共享内存,判断所述进程对应的监控开关是否开启;
[0165]则所述监控模块,具体用于在所述进程对应的监控开关开启时,利用所述监控函数执行所述PHP解释器针对进程编译得到的操作,且利用所述监控函数监控所述操作的执行过程中的函数信息;
[0166]则所述装置还包括:
[0167]写入模块,用于将所述函数信息写入所述共享内存,由命令行工具从所述共享内存中读取所述函数信息。
[0168]B11、如BlO所述的装置,所述写入模块,具体用于将所述函数信息写入所述共享内存中所述进程对应的内存映射文件。
[0169]B12、如B8或B9或BlO或Bll所述的装置,所述装置还包括:
[0170]栈信息获取模块,用于利用pstack得到进程对应PHP解释器的调用栈信息;以及
[0171]查找模块,用于依据所述PHP解释器的全局成员变量,在所述PHP解释器的调用栈信息中查找所述PHP解释器执行的各操作对应的函数调用栈信息。
[0172]B13、如B12所述的装置,所述查找模块,进一步包括:
[0173]操作获取子模块,用于依据PHP解释器的操作执行的上下文环境,得到所述PHP解释器执行的当前操作的操作执行信息;以及
[0174]操作查找子模块,用于依据所述PHP解释器的全局变量和所述当前操作的操作执行信息,在所述PHP解释器的调用栈信息中查找所述PHP解释器执行的当前操作对应的函数调用栈信息。
[0175]B14、如BlO所述的装置,所述监控开关的开启和关闭由所述命令行工具控制。
【主权项】
1.一种进程监控方法,包括: 将PHP解释器的操作执行函数替换为预置的监控函数;以及 利用所述监控函数执行所述PHP解释器针对进程编译得到的操作,且利用所述监控函数监控所述操作的执行过程中的函数信息。
2.如权利要求1所述的方法,其特征在于,所述利用所述监控函数监控所述操作的执行过程中的函数信息的步骤进一步包括: 根据待监控信息对应变量相对预置全局变量的偏移量,获取所述变量的地址;以及 利用所述监控函数,监控所述变量的地址在所述操作的执行过程中的信息。
3.如权利要求1所述的方法,其特征在于,在所述利用所述监控函数执行所述PHP解释器针对进程编译得到的操作,且利用所述监控函数监控所述操作的执行过程中的函数信息的步骤之前,所述方法还包括: 通过读取共享内存,判断所述进程对应的监控开关是否开启; 在所述进程对应的监控开关开启时,利用所述监控函数执行所述PHP解释器针对进程编译得到的操作,且利用所述监控函数监控所述操作的执行过程中的函数信息; 将所述函数信息写入所述共享内存,由命令行工具从所述共享内存中读取所述函数信息。
4.如权利要求3所述的方法,其特征在于,所述将所述函数信息写入所述共享内存的步骤,包括: 将所述函数信息写入所述共享内存中所述进程对应的内存映射文件。
5.如权利要求1或2或3或4所述的方法,其特征在于,所述方法还包括: 利用pstack得到进程对应PHP解释器的调用栈信息;以及 依据所述PHP解释器的全局成员变量,在所述PHP解释器的调用栈信息中查找所述PHP解释器执行的各操作对应的函数调用栈信息。
6.如权利要求5所述的方法,其特征在于,所述依据所述PHP解释器的全局变量,在所述PHP解释器的调用栈信息中查找所述PHP解释器执行的各操作对应的函数调用栈信息的步骤进一步包括: 依据PHP解释器的操作执行的上下文环境,得到所述PHP解释器执行的当前操作的操作执行信息;以及 依据所述PHP解释器的全局变量和所述当前操作的操作执行信息,在所述PHP解释器的调用栈信息中查找所述PHP解释器执行的当前操作对应的函数调用栈信息。
7.一种进程监控装置,包括: 替换模块,用于将PHP解释器的操作执行函数替换为预置的监控函数;以及 监控模块,用于利用所述监控函数执行所述PHP解释器针对进程编译得到的操作,且利用所述监控函数监控所述操作的执行过程中的函数信息。
8.如权利要求7所述的装置,其特征在于,所述监控模块,进一步包括: 地址获取子模块,用于根据待监控信息对应变量相对预置全局变量的偏移量,获取所述变量的地址;以及 监控子模块,用于利用所述监控函数,监控所述变量的地址在所述操作的执行过程中的信息。
9.如权利要求7或8所述的装置,其特征在于,所述装置还包括: 栈信息获取模块,用于利用pstack得到进程对应PHP解释器的调用栈信息;以及查找模块,用于依据所述PHP解释器的全局成员变量,在所述PHP解释器的调用栈信息中查找所述PHP解释器执行的各操作对应的函数调用栈信息。
10.如权利要求9所述的装置,其特征在于,所述查找模块,进一步包括: 操作获取子模块,用于依据PHP解释器的操作执行的上下文环境,得到所述PHP解释器执行的当前操作的操作执行信息;以及 操作查找子模块,用于依据所述PHP解释器的全局变量和所述当前操作的操作执行信息,在所述PHP解释器的调用栈信息中查找所述PHP解释器执行的当前操作对应的函数调用栈信息。
【专利摘要】本发明实施例提供了一种进程监控方法和装置,其中的方法具体包括:将PHP解释器的操作执行函数替换为预置的监控函数;以及利用所述监控函数执行所述PHP解释器针对进程编译得到的操作,且利用所述监控函数监控所述操作的执行过程中的函数信息。本发明实施例能够实时获取操作的执行过程中的函数信息并进行输出,因此,能够方便PHP脚本的开发人员快速定位PHP脚本的问题。
【IPC分类】G06F11-30
【公开号】CN104536870
【申请号】CN201410857076
【发明人】任勇全, 赵安安, 陈磊
【申请人】北京奇虎科技有限公司, 奇智软件(北京)有限公司
【公开日】2015年4月22日
【申请日】2014年12月31日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1