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 ...