您的位置:首頁>正文

python的pdb調試命令

一 pdb的部分調試命令

1. where(w) 找出當前代碼運行位置

2. list(l) 顯示當前代碼的部分上下文

3. list 顯示指定行的上下文

4. list 顯示指定開始行到結束行的代碼

5. up(u) 返回上個調用點

6. down(d) 返回下個調用點

7. args(a) 顯示當前所有變數

8. print(p) 列印運算式結果

9 ! 運行python命令, 比如!test='hello' 將會把test變數的值改變為hello

10. pp 列印美化過的運算式結果

11. step 步進運行至下行代碼(如果是調用函數, 則運行至所調用函數的第一行)

12. next 運行至下行代碼(如果是調用函數, 會直接運行完此函數)

13. until 運行至當前代碼端底部

14. return 運行至return代碼處

15. break 運行時設置中斷點

16. continue 運行程式直至遇到下一個中斷點

17. break 運行時設置另一個檔的中斷點

18. break 顯示中斷點情況

19. disable 將指定的中斷點失效(但存在)

20. enable 將指定的中斷點生效

21. clear 刪除中斷點

22. tbreak 運行時設置臨時中斷點(運行一次後自動刪除)

23. break 運行時設置中斷點, 當滿足condition條件時觸發中斷點, ex: break 11 i > 10 表示在第11行代碼處, 當變數i大於10時, 觸發中斷點

24. condition 設置指定中斷點的觸發條件

25. ignore 忽略指定中斷點n次

26. commands ... end 對指定中斷點編寫腳本, 當運行到該中斷點時自動執行

二 pdb實例

E:\python\work>python -m pdb prime.py> e:\python\work\prime.py(1)->import math(Pdb) list1->import math2def isprime(i):3for t in range(2,int(math.sqrt(i))+1):4if i % t ==0:5return06else:7return189print('100到110之間的素數為:')10for i in range(100,110):11if isprime(i):(Pdb) l 12,1512print(i)131415(Pdb) b 12Breakpoint1 at e:\python\work\prime.py:12(Pdb) b 7Breakpoint2 at e:\python\work\prime.py:7(Pdb) c100到110之間的素數為:> e:\python\work\prime.py(7)isprime->return1(Pdb) c> e:\python\work\prime.py(12)->print(i)(Pdb) n101> e:\python\work\prime.py(10)->for i in range(100,110):(Pdb) n> e:\python\work\prime.py(11)->if isprime(i):(Pdb) n> e:\python\work\prime.py(10)->for i in range(100,110):(Pdb) n> e:\python\work\prime.py(11)->if isprime(i):(Pdb)print i***SyntaxError:Missing parentheses in call to 'print'(Pdb) p i103(Pdb) where d:\python36\lib\bdb.py(431)run->exec(cmd, globals, locals)(1)> e:\python\work\prime.py(11)->if isprime(i):(Pdb)breakNumTypeDispEnbWhere1 breakpoint keep yes at e:\python\work\prime.py:12 breakpoint already hit 1 time2 breakpoint keep yes at e:\python\work\prime.py:7 breakpoint already hit 1 time(Pdb) disable 1Disabled breakpoint 1 at e:\python\work\prime.py:12(Pdb)breakNumTypeDispEnbWhere1 breakpoint keep no at e:\python\work\prime.py:12 breakpoint already hit 1 time2 breakpoint keep yes at e:\python\work\prime.py:7 breakpoint already hit 1 time(Pdb) n> e:\python\work\prime.py(7)isprime->return1(Pdb) where d:\python36\lib\bdb.py(431)run->exec(cmd, globals, locals)(1) e:\python\work\prime.py(11)->if isprime(i):> e:\python\work\prime.py(7)isprime->return1(Pdb) clClear all breaks? yDeleted breakpoint 1 at e:\python\work\prime.py:12Deleted breakpoint 2 at e:\python\work\prime.py:7(Pdb)break(Pdb) c103105107109The program finished and will be restarted> e:\python\work\prime.py(1)
同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示