之前除錯python程式都是用print引數,感覺有點弱爆啊,最近發現python也有類似c語言gdb的工具pdb,記錄下pdb的使用方法和心得。
先找了段簡單的測試程式:
#pdb的!/usr/bin/python
from ftplib import
ftpimport
sysimport
socket
import
pdbdef
passwordcorrect(ip,port,username,password):
try:
client =ftp()
pdb.set_trace()
client.connect(ip,port)
client.login(username,password)
client.close()
except
exception, e:
pdb.set_trace()
client.close()
if str(e).find('
unknown ip address
')!=-1:
return 2
return
0
"correct
"return 1
if__name__ == '
__main__':
socket.setdefaulttimeout(3)
ret = passwordcorrect('
127.0.0.1
',21,'
test
','test')
"return is
",ret
常用命令說明:
l #檢視執行到哪行**
n #單步執行,跳過函式
s #單步執行,可進入函式
p 變數 #檢視變數值
b 行號 #斷點設定到第幾行
b #顯示所有斷點列表
cl 斷點號 #刪除某個斷點
cl #刪除所有斷點
c #跳到下乙個斷點
r #return當前函式
exit #退出
除錯記錄:
pdb設定斷點可以在程式裡加入:
import pdb
在需要設定斷點的地方加入pdb.set_trace()
執行python -m pdb test.py
1 [root@wh practice]#按c逐個執行到下乙個斷點,按p ip 就可以檢視變數ip的值vim test.py
2 [root@wh practice]#
python -m pdb test.py
3 > /home/practice/test.py(2)()
4 -> from ftplib import
ftp5
(pdb) c
6 > /home/practice/test.py(10)passwordcorrect()
7 -> client.connect(ip,port)
exit退出當前函式
主要用到的功能就是這些,暫且先學這些
Linux下除錯總結
感覺linux環境下段錯誤的產生原因及除錯方法小結寫的不錯,列舉了幾個主要的除錯方式。有幾點補充 1.在使用core dump的時候,關於開啟 關閉生成core檔案的命令 ulimit c unlimited 使core檔案大小沒有限制。ulimit c 0 限制core檔案大小為0,即不產生cor...
Linux下除錯PostgreSQL資料庫
準備原始碼包為 postgresql 9.4.1.tar.gz 作業系統 ubuntu 14.04 x64 server 解壓原始碼包 tar zxvf postgresql 9.4.1.tar.gz cd postgresql 9.4.1 configure enable debug withou...
linux下除錯程式
摘要 在linux下,我們也應該掌握常見的程式除錯指令,這樣才能方便我們在linux下進行工作。在windows下雖然除錯程式比較方便,但是linux有比它更加吸引人的地方在於它可以很輕鬆的就進入乙個程式的內部。這對於我們後期的 分析有很大的好處,所以,今天我就把這幾天學到的關於除錯程式的命令列總計...