之前除錯python程式都是用print引數,感覺有點弱爆啊,最近發現python也有類似c語言gdb的工具pdb,記錄下pdb的使用方法和心得。
先找了段簡單的測試程式:
複製**
!/usr/bin/python
from ftplib import ftp
import sys
import socket
import pdb
def 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
print "correct"
return 1
if name == "main":
socket.setdefaulttimeout(3)
ret = passwordcorrect("127.0.0.1",21,"test","test")
print "return is ",ret
複製**
pdb的常用命令說明:
l #檢視執行到哪行**
n #單步執行,跳過函式
s #單步執行,可進入函式
p 變數 #檢視變數值
b 行號 #斷點設定到第幾行
b #顯示所有斷點列表
cl 斷點號 #刪除某個斷點
cl #刪除所有斷點
c #跳到下乙個斷點
r #return當前函式
exit #退出
除錯記錄:
pdb設定斷點可以在程式裡加入:
import pdb
在需要設定斷點的地方加入pdb.set_trace()
執行python -m pdb test.py
[root@wh practice]# vim test.py
[root@wh practice]# python -m pdb test.py
/home/practice/test.py(2)()
-> from ftplib import ftp
(pdb) c
/home/practice/test.py(10)passwordcorrect()
-> client.connect(ip,port)
複製**
按c逐個執行到下乙個斷點,按p ip 就可以檢視變數ip的值
exit退出當前函式
資料斷點除錯技巧
在軟體開發過程中,程式bug成為了不可避免的產物,而解決bug的主要途徑便是通過除錯,今天就在這裡大概講解下資料無故被修改,找不到修改的位置,如何來進行定位,怎麼來設定合適的斷點,軟體除錯過程中斷點是乙個非常重要的東西,斷點如果下的合適的話,會給除錯帶來很大的便利,否則可能對解決bug起不到很大的作...
iOS 斷點除錯小技巧
disable breakpoints 是讓你的斷點不能用 delete breakpoints 是刪除所有斷點 在專案執行的時候,有時候會莫名其妙有斷點,但是顯示沒有斷點,這時候你只要刪除所有斷點就可以正常執行了 除錯bug總有崩潰的地方,這裡有乙個辦法可以使得程式斷點出現在你有問題的部分 就是下...
Visual Studio除錯之斷點技巧篇補遺
講完 visual studio除錯之斷點技巧篇 以後,翻翻以前看得一些資料和自己寫的一些文章,發現還有幾個關於中斷程式的技巧在前面的文章裡面遺漏了,決定還是在這裡總結一下。當然啦,如果你知道這些技巧,忽略這篇文章好了,可能有人會對這個問題有一些爭議,因為大部分情況下我們只需要在偵錯程式 debug...