1. 程式人生 > 其它 >Python pdb 除錯 命令

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。如果條件不存在,任何現有的條件被移除; 即,將斷點設為無條件