linux下python的除錯

2021-07-14 09:06:22 字數 1792 閱讀 9631

python

linux除錯

python是動態語言,編譯器檢查不到執行時的語法問題,而這些低階問題常常造成除錯效率很低。之前在linux伺服器上除錯,都是通過print和異常報錯來排查,簡直弱爆了。python內建的pdb正是除錯的利器。

我們先新建乙個測試指令碼:

shell**  

touch debug.py  

內容:shell**  

print "hello"

i = 0

for j in range(10):  

i += j  

print i  

常用命令說明:

l #檢視執行到哪行**

n #單步執行,跳過函式

s #單步執行,可進入函式

p 變數 #檢視變數值

b 行號 #斷點設定到第幾行

b #顯示所有斷點列表

cl 斷點號 #刪除某個斷點

cl #刪除所有斷點

c #跳到下乙個斷點

r #return當前函式

exit #退出

更多的命令

除錯過程:

shell**  

[co_ad2@localhost ~]$ python -m pdb debug.py  

> /home/co_ad2/debug.py(1)()  

-> print "hello"

(pdb) l  

1  ->     print "hello"

23       i = 0

4       for j in range(10):  

5           i += j  

6       print i  

[eof]  

(pdb) n  

hello  

> /home/co_ad2/debug.py(3)()  

-> i = 0

(pdb) n  

> /home/co_ad2/debug.py(4)()  

-> for j in range(10):  

(pdb) n  

> /home/co_ad2/debug.py(5)()  

-> i += j  

(pdb) p i  

0(pdb) p j  

0(pdb) n  

> /home/co_ad2/debug.py(4)()  

-> for j in range(10):  

(pdb) n  

> /home/co_ad2/debug.py(5)()  

-> i += j  

(pdb) p i  

0(pdb) p j  

1(pdb) n  

> /home/co_ad2/debug.py(4)()  

-> for j in range(10):  

(pdb) n  

> /home/co_ad2/debug.py(5)()  

-> i += j  

(pdb) p i  

1(pdb) p j  

2(pdb) b 6

breakpoint 1 at /home/co_ad2/debug.py:6

(pdb) c  

> /home/co_ad2/debug.py(6)()  

-> print i  

(pdb) p i  

45(pdb) n  

45--return--  

(pdb) exit 

Linux下Python基礎除錯

當手邊沒有ide,面對著python除錯犯愁時,你就可以參考下本文 pdb 命令除錯 參考 和 pdb help 首先你選擇執行的 py python m pdb myscript.py pdb 會自動停在第一行,等待除錯,這時你可以看看 幫助 pdb h 說明下這幾個關鍵 命令 斷點設定 pdb ...

Linux下Python基礎除錯

python有自帶的pdb庫,可以實現簡單的除錯功能,基本命令與gdb類似,不過功能不會有gdb那麼強大,pdb主要支援多斷點設定 可條件設定 級單步除錯,檢視堆疊資訊,檢視,post mortem除錯,詳細資訊可以檢視 用pdb除錯有多種方式可選 1.命令列啟動目標程式,加上 m引數,這樣呼叫my...

Linux下Python基礎除錯

當手邊沒有ide,面對著python除錯犯愁時,你就可以參考下本文 pdb 命令除錯 參考 和 pdb help 首先你選擇執行的 py python m pdb myscript.py pdb 會自動停在第一行,等待除錯,這時你可以看看 幫助 pdb h 說明下這幾個關鍵 命令 斷點設定 pdb ...