linux下調試python程序


  之前調試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

1 [root@wh practice]# vim test.py
2 [root@wh practice]# python -m pdb test.py
3 > /home/practice/test.py(2)<module>()
4 -> from ftplib import FTP
5 (Pdb) c
6 > /home/practice/test.py(10)passwordCorrect()
7 -> client.connect(ip,port)

按c逐個執行到下一個斷點,按p ip 就可以查看變量ip的值

exit退出當前函數

主要用到的功能就是這些,暫且先學這些


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM