天天看點

用pdb調試OpenStack Havana

作為個人學習筆記分享,有任何問題歡迎交流!

note:若是想要用pdb調試openstack,必須通過devstack安裝它。

1.   使用一般使用者(非root使用者),從github上擷取devstack代碼

git clonehttps://github.com/openstack-dev/devstack.git

2.   使用一般使用者運作

cd devstack; ./stack.sh

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.      開始調試:

用pdb調試OpenStack Havana

顯示有兩個screen

screen –x stack

進入如下界面:

用pdb調試OpenStack Havana

最下一行表示,每一個程序都有一個screen。帶*号的表示目前的screen,可以同時按下ctrl+a+8和ctrl+a+2分别前進和後退,來切換不同的screen.

4.      在0$中輸入nova list;切換到4$ n-api:

用pdb調試OpenStack Havana

5.      開始使用pdb進行調試

用pdb調試OpenStack Havana

1.    在./restart_stack後,如果某個服務一直在waiting,說明這個服務運作到了你設定的斷點,那麼可以使用ctrl+z,把目前的進行切換到背景,然後screen –x stack,找到該服務對應的視窗進行調試,如果不需要在服務啟動時就進行調試的話,按‘c’,讓它繼續執行。之後ctrl+a +d退出screen,用jobs指令檢視背景運作的程序,fg+程序id, 就可以把./restart_stack.sh的背景程序調出來繼續執行了。

2.    ./restart_stack後,horizon使用不了。​