pdb调试cinder代码

10 篇文章 0 订阅
1 篇文章 0 订阅

调试步骤

修改代码添加断点


scheduler_path='/usr/lib/python2.7/site-packages/cinder/cmd/scheduler.py'

tail -n 20  ${scheduler_path}

# 删除掉 原有断点
sed -i 's/import pdb;pdb.set_trace();\n//g'  ${scheduler_path}


# 打上 新断点

sed -i 's/def main():/def main():\n    import pdb;pdb.set_trace();/g' ${scheduler_path}


tail -n 20  ${scheduler_path}

停止 服务 并 手动 启动


systemctl stop openstack-cinder-scheduler

# 观察 启动 命令
systemctl status openstack-cinder-scheduler
-->
ExecStart=/usr/bin/cinder-scheduler --config-file /usr/share/cinder/cinder-dist.conf --config-file /etc/cinder/cinder.conf --logfile /var/log/cinder/scheduler.log

# 指定 cinder 用户 启动

su -s /bin/bash -c '/usr/bin/cinder-scheduler --config-file /usr/share/cinder/cinder-dist.conf --config-file /etc/cinder/cinder.conf --logfile /var/log/cinder/scheduler.log'  cinder

-> 成功进去 pdb
> /usr/lib/python2.7/site-packages/cinder/cmd/scheduler.py(47)main()
-> objects.register_all()
(Pdb)
l : 查看 附近代码

s :单步进行,并 且进入函数

n :单步进行 不进入 函数

![python 代码 片段]  执行代码

调试完成后 不要 忘记 启动 服务 哦


scheduler_path='/usr/lib/python2.7/site-packages/cinder/cmd/scheduler.py'

sed -i 's/import pdb;pdb.set_trace();\n//g'  ${scheduler_path}

tail -n 20  ${scheduler_path}

systemctl start openstack-cinder-scheduler

断点 打印


147
148 B->         self.manager = manager_class(host=self.host,
149                                          service_name=service_name,
150                                          *args, **kwargs)
151             self.report_interval = report_interval
152             self.periodic_interval = periodic_interval
153             self.periodic_fuzzy_delay = periodic_fuzzy_delay
(Pdb) p manager_class
<class 'cinder.scheduler.manager.SchedulerManager'>


调试 scheduler 记录


(Pdb) n
> /usr/lib/python2.7/site-packages/cinder/scheduler/manager.py(66)__init__()

    def __init__(self, scheduler_driver=None, service_name=None,
                 *args, **kwargs):

-> scheduler_driver = CONF.scheduler_driver

 65             if not scheduler_driver:
 66                 scheduler_driver = CONF.scheduler_driver
(Pdb) p CONF.scheduler_driver
'cinder.scheduler.filter_scheduler.FilterScheduler'

(Pdb) p kwargs
{'host': 'node01'}



调试 调度器

su  -s /bin/bash -c '/usr/bin/python2 /usr/bin/cinder-scheduler --config-file /usr/share/cinder/cinder-dist.conf --config-file /etc/cinder/cinder.conf --logfile /var/log/cinder/scheduler.log '  cinder


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yuemake999

请我喝茶呗

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值