用Pdb庫調試Python的方式及常用的指令
大家都知道Python是自備Pdb庫,使用Pdb調試Python程式還是很方便的。但是遠端調試、多線程,Pdb是搞不定的,下面一起來看看用Pdb庫調試Python的方式及常用的指令。
用Pdb調試有多種方式
#使用 Pdb調試 Python的程式的方式主要是下面的三種!下面逐一介紹
命令列加-m參數
#命令列啟動目標程序,加上-m參數,這樣呼叫testPdb.py的話斷點就是程式執行的第一行之前
本文接下來重點講到的實例展示就是使用這種方式進行調試的!
python -m pdb testPdb.py
在python互動環境偵錯
##
>>> import pdb >>> import testPdb >>> pdb.run('testPdb.test()')
程式碼中插入一段程式
hardcode的
if __name__ == "__main__": a = 1 import pdb pdb.set_trace() b = 2 c = a + b print(c)
python testPdb.py 到了
pdb. set_trace()那裡就會定下來,然後就可以看到調試的提示符(Pdb)了
針對上面的這段小程式的調試情況如下:
準備測試程序
testFun.py
#
#!/usr/bin/python # -*- coding: utf-8 -*- def add(a, b): return a + b
testPdb.py
#!/usr/bin/python # -*- coding: utf-8 -*- def sub(a, b): return a - b if __name__ == "__main__": print '' import testFun i = 0 a = 1 while(i < 100): a = testFun.add(a, 1) i = i + 1 print "累加结果:", a print "" for letter in 'Pdb': print "当前字母:", letter print "" fruits = ['banana', 'apple', 'mango'] for fruit in fruits: print "当前水果:", fruit print "" ret = 0 for num in range(10, 12): ret = sub(ret, num) print '循环结果:', ret print "" d = {'abc': 123, 123: "abc"} for (k,v) in d.items(): print "当前键值对:", k, '-', v print ""
總結常用的指令
基礎指令
h [command] ,例如
h l 查看list指令
斷點管理
b testFun.add 就可以實作在testFun.py腳本中的add函數加斷點
如果只用b 就會顯示現有的全部斷點
condition bpnumber [condition]:設定條件斷點,例如condition 2 a==0 ,就是在第二個斷點出加條件「a== 0”cl(ear):刪除斷點,如果後面有參數,就是清楚指定的斷點;如果不帶參數就是清除所有的斷點disable/enable:停用/啟動斷點程式邏輯控制
testFun.當add(a, 1)時,繼續執行n,並不會進入
testFun.add(a, 1)的函數內部
testFun.add(a, 1)時,繼續執行s,會進入
testFun.add(a, 1)對應的函數定義內部,雖然
testFun.add不是本腳本定義的函數
列印重要資訊
testFun.add內部之後,列印
testFun.add的參數
退出偵錯
總結
上面展示的使用 Pdb調試的過程其實是很簡單的,文章中主要透過截圖展示運行的效果。如果單純的看一遍文章,不出意外,會很沒有頭緒,甚至感覺截圖中的命令、輸出亂七八糟,但是如果親自動手跟著走一遍流程,花不了一小時,但是效果絕對極佳!多說一句,Python的調試器是 Pdb,可以對應學習 Linux下 C的調試器 gdb,以上就是本文全部內容,希望對大家學習與工作能有所幫助。
更多用Pdb庫調試Python的方式及常用的指令相關文章請關注PHP中文網!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

Linux終端中查看Python版本時遇到權限問題的解決方法當你在Linux終端中嘗試查看Python的版本時,輸入python...

在使用Python的pandas庫時,如何在兩個結構不同的DataFrame之間進行整列複製是一個常見的問題。假設我們有兩個Dat...

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

Uvicorn是如何持續監聽HTTP請求的? Uvicorn是一個基於ASGI的輕量級Web服務器,其核心功能之一便是監聽HTTP請求並進�...

在Python中,如何通過字符串動態創建對象並調用其方法?這是一個常見的編程需求,尤其在需要根據配置或運行...

本文討論了諸如Numpy,Pandas,Matplotlib,Scikit-Learn,Tensorflow,Tensorflow,Django,Blask和請求等流行的Python庫,並詳細介紹了它們在科學計算,數據分析,可視化,機器學習,網絡開發和H中的用途
