Python的學習(二十九)---- linux下python調試

之前一直在window下寫python腳本,習慣用eclipse調試編輯,突然換到在linux環境下,有點不適應。。。

python有自帶的pdb庫,可以實現簡單的調試功能,基本命令與gdb類似,不過功能不會有gdb那麼強大,pdb主要支持多斷點設置(可條件設置),代碼級單步調試,查看堆棧信息,代碼查看,post-mortem調試,

詳細信息可以查看: http://docs.python.org/2/library/pdb.html

用pdb調試有多種方式可選:

1. 命令行啓動目標程序,加上-m參數,這樣調用myscript.py的話斷點就是程序的執行第一行之前
python -m pdb myscript.py

2. 在Python交互環境中啓用調試
>>> import pdb
>>> import mymodule
>>> pdb.run(‘mymodule.test()’)

3. 比較常用的,就是在程序中間插入一段程序,相對於在一般IDE裏面打上斷點然後啓動debug,

if __name__ == "__main__":
    a = 1
    import pdb
    pdb.set_trace()
    b = 2
    c = a + b
    print (c)

正常運行腳本後,到了pdb.set_trace()那就會定下來,就可以看到調試的提示符(Pdb)了

 

一些常用指令:

h(elp) [comman]  #打印可用指令及幫助信息

r(eturn)  #運行代碼直到下一個斷點或當前函數返回

b(reak) [[filename:]lineno | function[, condition]]  #指定文件某行或函數體來設置斷點

l(ist) [first[, last]]  #查看指定代碼段

n(ext)  #執行下一行

s(tep) #執行下一行,若爲函數則進入函數體

p  #打印某個變量

a(rgs)  #打印當前函數的參數

w(here)  #打印堆棧信息

d(own)  #移至下層堆棧

u(p)  #移至上層堆棧

j(ump)  #跳轉到指定行

continue / c  #繼續執行

disable [bpnumber [bpnumber]] #失效斷點

enable[bpnumber [bpnumber]]  #啓用斷點

cl(ear) [filename:lineno | bpnumber [bpnumber]] #刪除斷點

q(uit)/exit  #中止調試並退出

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章