http://www.csdn123.com/html/blogs/20131029/90565.htm
Note:若是想要用pdb调试OpenStack,必须通过Devstack安装它。
1. 使用一般用户(非root用户),从github上获取devstack代码
git clonehttps://github.com/openstack-dev/devstack.git
2. 使用一般用户运行
cd devstack; ./stack.sh
(参考:http://devstack.org/)
3.安装过程中要求输入一些密码,这些密码将记录在localrc文件中,该文件还可以用来配置安装的openstack组件,默认的只会安装glance,keystone,nova,horizon.
4. 创建文件creds:
exportSERVICE_TOKEN=xxx(3中输入的密码)
exportOS_TENANT_NAME=admin
exportOS_USERNAME=admin
export OS_PASSWORD=xxx
exportOS_AUTH_URL=http://localhost:5000/v2.0/
exportSERVICE_ENDPOINT=http://localhost:35357/v2.0
source creds就可以使用openstack了
5. 若想更改已安装的组件,再./stack.sh即可
1. 修改代码
在需要调试的地方加入:
import pdb; pdb.set_trace()(以在nova/compute/api.py:get_all()中加入pdb为例)
2. 使用附录上的脚步restart_stack.sh重启服务(该脚本只针对默认安装的组件有效)
3. 开始调试:
显示有两个screen
screen –x stack
最下一行表示,每一个进程都有一个screen。带*号的表示当前的screen,可以同时按下ctrl+a+8和ctrl+a+2分别前进和后退,来切换不同的screen.
4. 在0$中输入nova list;切换到4$ n-api:
5. 开始使用pdb进行调试
1. 在./restart_stack后,如果某个服务一直在waiting,说明这个服务运行到了你设置的断点,那么可以使用ctrl+z,把当前的进行切换到后台,然后screen –x stack,找到该服务对应的窗口进行调试,如果不需要在服务启动时就进行调试的话,按‘c’,让它继续执行。之后Ctrl+a +d退出screen,用jobs命令查看后台运行的进程,fg+进程ID, 就可以把./restart_stack.sh的后台进程调出来继续执行了。
2. ./restart_stack后,Horizon使用不了。
1.使用pdb调试openstack (How to debug openstackusing pdb )
http://www.csdn123.com/link.php?url=http://blog.csdn.net/hackerain/article/details/8373597
2. linux screen 命令详解
http://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html