Linux 黑乎乎的命令列下,如何除錯 Python?
一般開發者都是在 IDE 中進行程式的除錯,當然,有 IDE 的話,當然首選 IDE 進行除錯。
但是,有時我們的業務場景,限制只能在 Linux 命令列模式進行除錯。
這時該怎麼辦呢?
今天,就給大家介紹一個 Linux 下除錯 Python 程式的工具。
pdb簡介
pdb 偵錯程式是 Python 標準庫提供的,因此最為方便,不需要安裝其他元件,直接 import 後就能使用。
pdb 偵錯程式提供了除錯所需的大多數功能,如斷點、單行步進、堆疊幀的檢查等等。
常用引數
l # 檢視執行到哪行程式碼
n # 單步執行,跳過函式
s # 單步執行,可進入函式
p 變數 # 檢視變數值
b 行號 # 斷點設定到第幾行
b # 顯示所有斷點列表
cl 斷點號 # 刪除某個斷點
cl # 刪除所有斷點
c # 跳到下一個斷點
r # return 當前函式
exit # 退出
使用示例
本文 Python 環境:Python 3.5.2
我們先準備一小段演示程式:
# -*- coding: utf-8 -*-
def add(a, b):
return a + b
if __name__ == '__main__':
print("===start===")
c = add(1, 3)
print("===end===")
使用方法 1:
執行 pdb 的最簡單方法是從命令列,將程式作為引數傳遞來除錯。
$ python -m pdb test_pdb.py
這時,就開始單步執行了。
這種方法對程式碼沒有侵入性,但是每次都需要設定斷點。
使用方法 2:
在程式碼頭部引入 pdb,然後可以在程式碼裡,透過 pdb.set_trace()
來設定斷點:
# -*- coding: utf-8 -*-
import pdb
def add(a, b):
pdb.set_trace()
return a + b
if __name__ == '__main__':
print("===start===")
pdb.set_trace()
c = add(1, 3)
print("===end===")
此時,執行程式,就會自動跳轉到設定的斷點處:
總結
沒了圖形化頁面,除錯只能這麼來了,不過還好,pdb 使用看著不難吧。
其實還有一些增強的偵錯程式,比如 IPython 的 ipdb 和 pdb++,它們一般都提供了更好的使用者體驗,新增了有用的額外功能,例如語法突出高亮、更好的回溯和自省。
後面有機會再給大家分享吧!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559358/viewspace-2375379/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- linux串列埠命令列除錯Linux串列埠命令列除錯
- Flutter的命令列除錯Flutter命令列除錯
- Linux awk命令中如何刪除陣列Linux陣列
- 2019最新Python學習教程升級版(Linux 下如何除錯 Python?)PythonLinux除錯
- Linux下的除錯工具Linux除錯
- Linux 命令列下的好東西Linux命令列
- Linux下刪除資料夾的命令Linux
- (14)caffe總結之Linux下Caffe如何除錯Linux除錯
- python命令列如何退出Python命令列
- linux下的命令列播放器mocLinux命令列播放器
- Linux 命令列下連線WiFiLinux命令列WiFi
- python如何單步除錯Python除錯
- Windows 下如何除錯 PowerShellWindows除錯
- 如何在Linux命令列下檢視幫助?學習linux運維Linux命令列運維
- Linux 命令列下的最佳文字編輯器Linux命令列
- 如何在 Linux 命令列操作 PDFLinux命令列
- 在 Linux 命令列下使用“原力”Linux命令列
- Linux有問必答:如何在命令列下壓縮JPEG影像Linux命令列
- Linux 命令列刪除指定副檔名檔案Linux命令列
- console除錯命令除錯
- Linux除錯Linux除錯
- 【Linux】linux下刪除/清空資料夾/檔案命令Linux
- Linux下命令列中的複製和貼上Linux命令列
- Linux命令列Linux命令列
- win10 如何除錯串列埠_win10串列埠除錯怎麼除錯Win10除錯串列埠
- 收集 Linux 命令列執行的命令Linux命令列
- python 除錯Python除錯
- linux的刪除檔案命令和強制刪除命令Linux
- iOS 下如何一鍵除錯 PushiOS除錯
- Linux下搭建FFmpeg開發除錯環境Linux除錯
- linux 下vim中關於刪除某段,某行,或全部刪除的命令Linux
- 如何從 Linux 命令列安裝軟體Linux命令列
- Linux環境下C++除錯的三板斧LinuxC++除錯
- Python 程式碼除錯—使用 pdb 除錯Python除錯
- vsc 如何除錯遠端python程式碼除錯Python
- Android除錯命令收錄Android除錯
- GDB除錯命令詳解除錯
- gdb高階除錯命令高階除錯