Linux下使用pdb簡單調試python程序

python自帶調試工具庫:pdb
# -*- coding:utf-8 -*-

def func(num):
    s = num * 10

    return s

if __name__ == '__main__':
    print 'debug starting...'
    print '*' * 10
    print 'debug ending…'
    num = 100
    s = func(num)
    print s
在python文件中不引用pdb庫,可以在執行python文件的時候,加上參數:
python -m pdb demo.py
來到pdb調試交互界面,debug模式將會停止在的第一行程序代碼行

可以執行如下命令,進行相應的操作:
b(or break):設置斷點;設置函數:b demo.func;設置行數:b demo:14(行數)
n(or next):執行下一行:Step over,跳過
c(or continue):執行下一個斷點,沒有斷點則到程序結束:Step filter
s(or step):進入函數,Step into,單步跳入
r(or return):跳出函數,Step return
l(or list):查看當前代碼段
q(or quit):退出當前debug
p(or print):打印變量值
h(or help):查看幫助
cl(clear):清除所有節點
disable [bpnumber[bpnumber]]:將第num個斷點失效,enable,失效第10個斷點
enable [bpnumber[bpnumber]]:啓用第num個斷點,enable 10,啓用第10個斷點
w(where):打印堆棧信息
a(args):打印當前函數參數信息


當然我們也可以使用pdb庫的函數,來實現對py的debug:
比如:我們可以使用pdb函數:set_trace()
def func(num):
    s = num * 10

    return s

if __name__ == '__main__':
    print 'debug starting...'
    print '*' * 10
    pdb.set_trace()      
    print 'debug ending…'
    num = 100
    s = func(num)
    print s 
執行程序:python pdb_demo.py
此時意味着給程序設置斷點行,將會自動運行至print ‘py ending...’停住,讓開發者繼續觸發接下來的操作,該操作在一個py引用其他py的時候,設置斷點恰到好處。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章