Linux下的Python調試

來源:互聯網
上載者:User

Linux下的Python調試

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,

[python]view plaincopy print?
  1. if__name__=="__main__":
  2. a=1
  3. importpdb
  4. pdb.set_trace()
  5. b=2
  6. c=a+b
  7. 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 #中止調試並退出

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.