如何使用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運維技術