Linux下使用pdb簡單調試python程序
python自帶調試工具庫:pdb
# -*- coding:utf-8 -*-
def func(num):
s = num * 10
return s
if __name__ == '__main__':
print 'debug starting...'
print '*' * 10
print 'debug ending…'
num = 100
s = func(num)
print s
在python文件中不引用pdb庫,可以在執行python文件的時候,加上參數:
python -m pdb demo.py
來到pdb調試交互界面,debug模式將會停止在的第一行程序代碼行
可以執行如下命令,進行相應的操作:
b(or break):設置斷點;設置函數:b demo.func;設置行數:b demo:14(行數)
n(or next):執行下一行:
Step over,跳過
c(or continue):執行下一個斷點,沒有斷點則到程序結束:Step filter
s(or step):進入函數,
Step into,單步跳入
r(or return):跳出函數,Step return
l(or list):查看當前代碼段
q(or quit):退出當前debug
p(or print):列印變數值
h(or help):查看幫助
cl(clear):清除所有節點
disable [bpnumber[bpnumber]]:將第num個斷點失效,enable,失效第10個斷點
enable [bpnumber[bpnumber]]:啟用第num個斷點,enable 10,啟用第10個斷點
w(where):列印堆棧信息
a(args):列印當前函數參數信息
當然我們也可以使用pdb庫的函數,來實現對py的debug:
比如:我們可以使用pdb函數:set_trace()
def func(num):
s = num * 10
return s
if __name__ == '__main__':
print 'debug starting...'
print '*' * 10
pdb.set_trace()
print 'debug ending…'
num = 100
s = func(num)
print s
執行程序:python pdb_demo.py
此時意味著給程序設置斷點行,將會自動運行至print 『py ending...』停住,讓開發者繼續觸發接下來的操作,該操作在一個py引用其他py的時候,設置斷點恰到好處。
2. python如何一步步調試
裝個Pycharm
1 添加斷點
2 Debug下運行代碼:
3 F8:進行下一步操作
F7 :跳入下一個方法中
3. 一個項目里,運行.sh文件調用py文件,從而開始整個項目,那麼如何debug .py文件呢
要在運行.sh文件調用的.py文件中進行調試,可以使用Python內置的調試器pdb。可以在.py文件中插入以下代碼以啟用pdb調試器:
pythonCopy codeimport pdb
pdb.set_trace()
當Python執行到pdb.set_trace()時,它會在該行停止執行攜雹,等待用戶輸入命令辯野帆,以便在該行之後單步執行代碼。
另外一種方法是在脊並調用.sh文件時添加參數-m pdb,例如:
bashCopy codepython -m pdb my_script.py arg1 arg2
這將使用Python的內置調試器pdb運行my_script.py,並在my_script.py中插入斷點。當Python執行到斷點時,它將進入pdb調試器,等待用戶輸入命令以進行調試。
需要注意的是,使用pdb調試器需要一定的Python編程經驗和調試技能,如果您不熟悉Python調試或pdb調試器,可能需要先學習相關知識。