Python pdb 除錯 命令
import pdb
直接在程式碼裡需要除錯的地方放一個pdb.set_trace()
n 執行下一條語句
w where 列印當前執行堆疊
d down 執行跳轉到在當前堆疊的深一層
u up 執行跳轉到當前堆疊的上一層
b break 新增斷點
tbreak:(temporary break)臨時斷點
在第一次執行到這個斷點之後,就自動刪除這個斷點,用法和b一樣
cl clear 清楚斷點
disable:停用斷點,引數為bpnumber,和cl的區別是,斷點依然存在,只是不啟用
enable:啟用斷點,引數為bpnumber
s step 執行下一條命令 如果本句是函式呼叫,則s會執行到函式的第一句
r return 執行當前執行函式到結束
c continue 繼續執行,直到遇到下一條斷點
l list 列出原始碼 看下面程式碼
longlist 所有源嗎
ll 檢視當前函式的程式碼
a args 列出當前執行函式的函式
run 重新啟動debug 相當於restart
q quit 退出debug
j jump 設定下條執行的語句函式 只能在堆疊的最底層跳轉,向後重新執行,向前可直接執行到行號
unt:(until)執行到下一行(跳出迴圈),或者當前堆疊結束
conditon,給斷點設定條件,當引數condition返回True的時候bpnumber斷點有效,否則bpnumber斷點無效
直接輸入Enter,會執行上一條命令;
直接使用 p 變數名 檢視值 print
pp 好看一點的 列印
bt 呼叫檢視的堆疊
alias 檢視所有命令別名和對應命令 相當於配置 ls 為 l
unalias 取消命名
whatis 檢視型別
where 檢視所在的位置
interact 啟用互動式直譯器
retval 列印函式的最後一次返回的返回值。
source 嘗試獲取給定物件的原始碼並顯示它。
display 每次在當前幀中停止執行時,顯示錶達式的值
undisplay 在當前幀中不再顯示該表示式。如果沒有表示式,請清除當前幀的所有顯示錶達式。
debug 輸入一個遞迴偵錯程式,它逐步遍歷code引數(這是要在當前環境中執行的任意表達式或語句)。
ignore 設定給定斷點號的忽略計數。如果忽略count,則忽略計數將設定為0。當忽略計數為零時,斷點將變為活動狀態。如果為非零值,則每次達到斷點且不禁用斷點時,計數都會遞減,並且任何關聯條件的評估結果為true。
commands 為斷點設定一個新條件,該表示式必須在接受斷點之前求值為true。如果條件不存在,任何現有的條件被移除; 即,將斷點設為無條件