Python除錯利器PDB

2021-08-25 17:31:18 字數 1379 閱讀 6275

使用pdb的方式有兩種,其中一種是在指令碼中新增**,不覺得這種方式比print好在**,所以這種方式此文不表。這裡我們只學習pdb的命令列使用方式。

1)進入命令列debug模式,python -m pdb myscript.py

2)h:(help)幫助

3)w:(where)列印當前執行堆疊

4)d:(down)執行跳轉到在當前堆疊的深一層(個人沒覺得有什麼用處)

6)b:(break)新增斷點

b 列出當前所有斷點,和斷點執行到統計次數

b line_no:當前指令碼的line_no行新增斷點

b filename:line_no:指令碼filename的line_no行新增斷點

b function:在函式function的第一條可執行語句處新增斷點

7)tbreak:(temporary break)臨時斷點

在第一次執行到這個斷點之後,就自動刪除這個斷點,用法和b一樣

8)cl:(clear)清除斷點

cl 清除所有斷點

cl bpnumber1 bpnumber2... 清除斷點號為bpnumber1,bpnumber2...的斷點

cl lineno 清除當前指令碼lineno行的斷點

cl filename:line_no 清除指令碼filename的line_no行的斷點

9)disable:停用斷點,引數為bpnumber,和cl的區別是,斷點依然存在,只是不啟用

10)enable:啟用斷點,引數為bpnumber

如果本句是函式呼叫,則s會執行到函式的第一句

如果本句是函式呼叫,則執行函式,接著執行當前執行語句的下一條。

13)r:(return)執行當前執行函式到結束

15)l:(list)列出原始碼

l 列出當前執行語句周圍11條**

l first 列出first行周圍11條**

l first second 列出first--second範圍的**,如果second16)a:(args)列出當前執行函式的函式

17)p expression:(print)輸出expression的值

18)pp expression:好看一點的p expression

19)run:重新啟動debug,相當於restart

20)q:(quit)退出debug

21)j lineno:(jump)設定下條執行的語句函式

只能在堆疊的最底層跳轉,向後重新執行,向前可直接執行到行號

23)condition bpnumber conditon,給斷點設定條件,當引數condition返回true的時候bpnumber斷點有效,否則bpnumber斷點無效

注意:2:輸入pdb不認識的命令,pdb會把他當做python語句在當前環境下執行;

pdb除錯python指令碼

使用pdb模組的run函式來除錯語句塊,其引數原型 run statement globals locals 其中 statement 要除錯的語句塊,以字串的形式 globals 可選引數,設定statement執行的全域性環境變數 import pdb pdb.run for i in rang...

使用pdb除錯python

python pdb除錯 python m pdb myscript.py 注意這會重啟myscript.py,這樣啟動的話,每一行都是乙個節點 也可以在程式中這麼設定斷點 import pdb pdb.set trace 支援的命令 p 列印變數 n next step 細點執行 c contin...

PDB除錯Python程式

pdb是python內建的除錯工具,它可以在終端中除錯python程式,這允許pdb在很多無法安裝ide的伺服器上使用.雖然遠端除錯使用廣泛,但在必要的時候 比如難以在本地搭建執行環境 pdb仍然是乙個便利的選擇.我們可以在python源 中設定斷點 import pdb def func for ...