使用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 ...