天天看點

Linux下調試python!/usr/bin/python

 原文位址:http://www.cnblogs.com/chinasun021/archive/2013/03/19/2969107.html

  先找了段簡單的測試程式:

複制代碼

!/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 [[email protected] practice]# vim test.py

2 [[email protected] practice]# python -m pdb test.py

3 > /home/practice/test.py(2)()

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退出目前函數

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