python標準庫pdb——The Python Debugger

The Python Debugger

  • Python自帶交互式源代碼調試器,在代碼中設置斷點,單步執行。

調試腳本

  • 逐句調試
python -m pdb filename.py

方法

.run

  • 在調試器控制下執行語句。

.runeval

  • 在調試器控件下測試表達式(以字符串形式給出)。當runeval()返回時,它返回表達式的值。否則此功能類似於run()。

.runcall

  • 使用給定的參數調用函數

.set_trace()

  • 創建一個調試器。

.post_mortem

  • 輸入給定回溯對象的事後調試。如果沒有給出回溯,它將使用當前正在處理的異常之一(如果要使用默認值,則必須處理異常)。

.pm()

  • 輸入在中找到的回溯的事後調試 sys.last_traceback。

調試器類

  • class pdb.Pdb(completekey=‘tab’, stdin=None, stdout=None, skip=None, nosigint=False, readrc=True)

Pdb 是調試器類。詳細信息

調試器命令

  • h(elp) [command]

獲得command的幫助信息。

  • w(here)

打印堆棧跟蹤,當前堆棧

  • d(own)

打印下一個堆棧信息。

  • u( p )

打印上一個堆棧信息。

  • b(reak) [[filename:]lineno | function[, condition]]

使用lineno參數,在文件中設置中斷,執行break。

  • tbreak [[filename:]lineno | function[, condition]]

臨時斷點,在第一次被擊中時自動刪除。參數與break相同。

  • cl(ear) [filename:lineno | bpnumber [bpnumber …]]

使用filename:lineno參數,清除此行的所有斷點。

  • disable [bpnumber [bpnumber …]]

禁用以空格分隔的斷點號列表給出的斷點。禁用斷點意​​味着它不能導致程序停止執行,但與清除斷點不同,它會保留在斷點列表中並可以(重新)啓用。

  • enable [bpnumber [bpnumber …]]

啓用指定的斷點。

  • ignore bpnumber [count]

設置給定斷點號的忽略計數。如果省略count,則忽略計數設置爲0.當忽略計數爲零時,斷點將變爲活動狀態。當非零時,每次到達斷點時計數都會遞減,並且斷點未被禁用且任何關聯條件的計算結果爲true。

  • condition bpnumber [condition]

Condition是一個表達式,在斷點被接受之前必須求值爲true。如果條件不存在,則刪除任何現有條件; 即,斷點是無條件的。

  • commands [bpnumber]

指定斷點號bpnumber的命令列表。命令本身出現在以下行中。鍵入僅包含’end’的行以終止命令。

(Pdb) commands 1
(com) print some_variable
(com) end
(Pdb)
  • s(tep)

執行當前行,在第一個可能的場合停止(在被調用的函數中或在當前函數的下一行中停止)。

  • n(ext)

繼續執行,直到達到當前函數中的下一行或返回。

  • unt(il)

繼續執行,直到達到行號大於當前行的行或從當前幀返回。

  • r(eturn)

繼續執行,直到當前函數返回。

  • c(ont(inue))

繼續執行,僅在遇到斷點時停止。

  • j(ump) lineno

設置將要執行的下一行。

  • l(ist) [first[, last]]

列出當前文件的源代碼。

  • a(rgs)

打印當前函數的參數列表。

  • p expression

評估當前上下文中的表達式並打印其值。

  • pp expression

與p命令一樣,除了表達式的值使用pprint模塊進行漂亮打印。

  • alias [name [command]]

創建一個名爲name的別名來執行命令。

  • unalias name

刪除指定的別名。

  • [!]statement

在當前堆棧幀的上下文中執行(一行)語句。除非語句的第一個單詞類似於調試器命令,否則可以省略感嘆號。要設置全局變量,可以在賦值命令的global前面加上同一行的命令,例如:

(Pdb) global list_options; list_options = ['-l']
(Pdb)
  • run [args …]

重新啓動調試的Python程序。

  • q(uit)

退出調試器。正在執行的程序被中止。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章