赞
踩
本博客所有文章采用的授权方式为 自由转载-非商用-非衍生-保持署名 ,转载请务必注明出处,谢谢。
声明:
本博客欢迎转发,但请注明出处,保留原作者信息
博客地址:孟阿龙的博客
所有内容为本人学习、研究、总结。如有雷同,实属荣幸
ceilometer在Newton版本以前,polling-agent使用的是oslo_service模块启动的进程,因此可以直接使用python内建的模块 pdb 直接进行调试。具体调试方法如下:
import pdb;pdb.set_trace()
/usr/bin/ceilometer-polling --polling-namespaces=central --logfile /var/log/ceilometer.log
- p var : 打印指定变量var的内容
- p dict_var.__dict__ : 打印dict类型变量的内容
- n : 跳过当前行继续执行下一行
- s : 进入当前行对应函数的内部
ceilometer在Newton版本开始,使用cotyledon 这个模块来启动进程框架,该模块底层是multiprocess,启动进程框架之后会进入子进程,此时使用上边的方法就不能进入到子进程的debug,此时需要使用如下方法:
- import sys
- import pdb
-
- class ForkedPdb(pdb.Pdb):
- def interaction(self, *args, **kwargs):
- _stdin = sys.stdin
- try:
- sys.stdin = open('/dev/stdin')
- pdb.Pdb.interaction(self, *args, **kwargs)
- finally:
- sys.stdin = _stdin
ForkedPdb().set_trace()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。