如何跟踪调试openstack源码

调试openstack源代码是openstack开发者必备技能,但是还是有小白不知道,而且网上多数资料都是针对devstack部署的环境。

那么我们按照官网部署的普通环境如何调试呢?

其实很简单,使用python内置的pdb工具即可。下面举个例子来实践一下。

① 首先确定你要调试的代码属于openstack哪个服务。比如说最常见的创建安全组规则,属于neutron-server服务。我们要做的第一步就是把该服务,neutron-server停掉。

systemctl stop neutron-server

② 找到你需要调试的代码位置,加入pdb断点,比如我要调试创建默认安全组规则代码,就需要在源代码处加入断点。

import pdb;pdb.set_trace(),如图:

    def create_security_group(self, context, security_group, default_sg=False):
        ###########下面这一行就是我加入的pdb断点#########
        import pdb;pdb.set_trace()
        s = security_group['security_group']
        kwargs = {
            'context': context,
            'security_group': s,
            'is_default': default_sg,
        }

        self._registry_notify(resources.SECURITY_GROUP, events.BEFORE_CREATE,
                              exc_cls=ext_sg.SecurityGroupConflict, **kwargs)

        .............后面的省略

③ 有了断点以后,就可以跟踪调试源码了,使用bash指令启动之前被停掉的服务(千万不要用systemctl,否则进不了断点)。

/usr/bin/neutron-server

④ 在dashboard或者调用API触发被调试逻辑,我这里在dashboard创建一个安全组。稍后会发现,控制台进入了pdb调试模式

此时就算成功了,我们可以在pdb模式下输入pdb指令来达到跟踪调试效果,比如:

l   查看当前上下文代码

n 代码执行下一行

输入相关变量名字,查看变量的值,比如查看kwargs的值

c 跳过当前断点,程序继续执行。

更多pdb操作自己百度。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值