如何調(diào)試OpenStack代碼

對于很多剛剛從事OpenStack相關(guān)的開發(fā)者來說,如何對OpenStack代碼進行debug,是一件很困惑,但又重要的事情。
以下會從自己學習debug的經(jīng)歷,來講述兩種debug OpenStack代碼的方法。

注:目標OpenStack調(diào)試環(huán)境均為devstack方式安裝。

  1. pdb調(diào)試
    =========

這種方法是最簡單的調(diào)試方式,只需要在準備調(diào)試的代碼處加上以下代碼段,然后重啟服務(wù)即可。

import pdb
pdb.set_trace()

關(guān)于pdb調(diào)試的方法,網(wǎng)上有很多介紹詳盡的文檔,可以搜索參考。
進入斷點后常用的命令:

n 單步執(zhí)行
c 進入下一個斷點
q 退出
p 打印變量
dir(變量)查看變量結(jié)構(gòu)

此方法優(yōu)點是簡單,缺點也很明顯。
(1)功能不夠強大,不能通過IDE去調(diào)試
(2)不能直觀的觀察變量
etc.

  1. mac + SSH TUNNEL + PyCharm + SSHFS調(diào)試
    ======================================

首先,你需要有一臺mac;
其次,在mac上安裝 SSH TUNNEL軟件,目前可用的下載鏈接為:http://xclient.info/s/ssh-tunnel.html
然后,安裝PyCharm
最后,安裝SSHFS,可參考鏈接:http://m.itdecent.cn/p/8723ba79f35a

下面具體說下重要步驟需要做的事情。

a. SSH TUNNEL安裝后,進行設(shè)置,與OpenStack目標環(huán)境建立反向代理連接。

Paste_Image.png

b. 驗證是否建立成功:

在Mac上執(zhí)行 python -m SimpleHTTPServer 8899
在目標環(huán)境上執(zhí)行 curl 127.0.0.1:8899,確實是否有響應(yīng)

c. OpenStack目標環(huán)境安裝調(diào)試軟件包:

將PyCharm安裝目錄下的pycharm-debug.egg文件拷貝到OpenStack目標環(huán)境并安裝。
pycharm-debug.egg在mac上的位置:通過finder--》應(yīng)用程序 --》PyCharm圖標 --》右鍵顯示包內(nèi)容 --》Contents/debug-eggs目錄下
在目標環(huán)境執(zhí)行:easy_install pycharm-debug.egg

d. SSHFS掛載代碼目錄

將OpenStack目標環(huán)境的運行目錄掛載到本地,sshfs -C -o reconnect user@hostname:remote_dir local_dir
并通過PyCharm在mac上打開工程。

e. PyCharm調(diào)試設(shè)置:

Run-->Edit Configuration--> + Python Remote Debug,具體請參照下圖。

Paste_Image.png

Run --> Debug xxxx

f. 調(diào)試

在需要調(diào)試的代碼處輸入以下兩行:
import pydevd
pydevd.settrace('127.0.0.1', port=8899, stdoutToServer=True, stderrToServer=True)

在目標環(huán)境執(zhí)行相應(yīng)操作即可進入PyCharm的Debug步驟。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容