1. 程式人生 > >如何使用pdb工具來除錯python指令碼?

如何使用pdb工具來除錯python指令碼?

pdb是linux的python除錯工具,它功能比較齊全,使用起來也很方便, 按一般運維工程師的技術發展來說,最早接觸程式語言應該是shell, 所以大多是在shell的基礎上開始學習Python的,如果是剛從shell指令碼轉到寫python指令碼的小夥伴可能會有點不太適應,比如說除錯,大家都知道寫指令碼是有一個除錯過程的除非你的腳本里只有一行, 那既然都有除錯過程,那shell下除錯就很方便,shell執行時我們可以直接 sh -x myscript.sh ,就可以看到整個指令碼執行的過程,或者在某些關鍵地方加入echo ,打印出變數,除錯方法簡單直接, 所以在寫Python指令碼時我們繼承了寫shell指令碼的除錯習慣,我們會在程式中加入print 來除錯關鍵變數,這也是現在大家通用的方法,但有時候就行不通,如果一個指令碼寫的很長,有涉及到某些邏輯在裡面,用print就顯得無力了,如果你不掌握除錯方法,那完成一個稍微複雜的指令碼是相當痛苦的,所以掌握除錯工具是寫出複雜程式的必備技能,那就引出了今天我們要說的pdb除錯工具。

開始前我們先了解下pdb的常用命令:

1、step:單步除錯,執行下一行程式碼,但是有函式呼叫會進入函式內部。

2、next:執行下一行程式碼,如果當前語句有函式呼叫,則不會進入函式體中

3、break:設定程式斷點,break 10 表示在第10行設定斷點

4、continue:繼續執行程式,直到下一個斷點

5、list:顯示第幾行,例如:list 50

6、print:這個就是列印想看的引數

7、quit:退出

我們拿一個例子看如果具體應用:

比如我除錯我之前的指令碼:parser_nginx_log.py

我用最簡單的方式在終端開始執行:

python -m pdb parser_nginx_log.py

截圖如下:

原文來自微信公眾號:Python運維技術