Python內置debug庫pdb用法示例詳解
0. 引言
pdb(Python Debugger)是Python的內置調試器,使用pdb進行調試可以幫助你深入了解程序的執(zhí)行流程和變量狀態(tài),有助于快速定位和解決問題。通過上述常用命令和示例代碼,你可以有效地在Python項目中使用pdb進行調試。
下面是pdb的一些常用功能和用法的詳細介紹。
1. 基本用法
1.1 設置斷點
要使用pdb調試Python代碼,可以在需要調試的地方插入pdb.set_trace(),程序運行到這一行時會暫停,進入調試模式。
例子
import pdb
def add(a, b):
return a + b
def main():
x = 10
y = 20
pdb.set_trace() # 設置斷點
result = add(x, y)
print(f"Result: {result}")
if __name__ == "__main__":
main()
運行程序后,程序會在pdb.set_trace()處暫停,進入交互式調試模式。

1.2 通過命令行啟動 pdb
可以直接從命令行啟動pdb進行調試(此時不要求打斷點):
python -m pdb your_script.py
此時會停留在代碼第一行,然后你就可以依次 debug 所有的 python 代碼。
2. 常用命令
2.1 n (next)
執(zhí)行下一行代碼,不會進入函數(shù)內部。
(Pdb) n
2.2 s (step)
進入當前行調用的函數(shù)。
(Pdb) s
2.3 c (continue)
繼續(xù)執(zhí)行程序,直到遇到下一個斷點。
(Pdb) c
2.4 l (list)
顯示當前代碼行以及周圍的代碼。
(Pdb) l
2.5 p (print)
打印變量的值。
(Pdb) p x
2.6 h (help)
顯示幫助信息。
(Pdb) h
2.7 b (break)
設置斷點,可以在指定行或指定函數(shù)處設置斷點。
(Pdb) b 12 # 在第12行設置斷點 (Pdb) b add # 在add函數(shù)處設置斷點
2.8 cl (clear)
清除斷點。
(Pdb) cl 1 # 清除編號為1的斷點
2.9 q (quit)
退出調試器。
(Pdb) q
3. 例子
以下是一個完整的例子,展示了如何使用pdb進行調試:
import pdb
def add(a, b):
return a + b
def multiply(a, b):
return a * b
def main():
x = 10
y = 20
pdb.set_trace() # 設置斷點
sum_result = add(x, y)
mul_result = multiply(x, y)
print(f"Sum: {sum_result}")
print(f"Product: {mul_result}")
if __name__ == "__main__":
main()
運行程序并調試:
運行程序: 直接運行上面的代碼,程序會在
pdb.set_trace()的下一行處暫停。查看代碼: 使用
l命令查看當前代碼行和周圍的代碼。
(Pdb) l

- 打印變量值: 使用
p命令打印變量的值。
(Pdb) p x 10 (Pdb) p y 20
- 單步執(zhí)行: 使用
n命令執(zhí)行下一行代碼。
(Pdb) n
> /xx/test_pdb.py(11)main()
-> print(f"Result: {result}")
- 繼續(xù)執(zhí)行: 使用
c命令繼續(xù)執(zhí)行程序,直到遇到下一個斷點或程序結束。
總結
到此這篇關于Python內置debug庫pdb用法的文章就介紹到這了,更多相關Python內置debug庫:pdb用法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
一文深入了解Python中的property動態(tài)屬性機制
作為Python中最為強大也最為神秘的概念之一,元類(metaclass)賦予了開發(fā)者"修改類創(chuàng)建過程"的超能力,而在我們正式踏入元類殿堂之前,必須首先掌握一個基礎而重要的概念property動態(tài)屬性,本文深入探討了Python中的property動態(tài)屬性機制,需要的朋友可以參考下2026-02-02
在pandas中遍歷DataFrame行的實現(xiàn)方法
這篇文章主要介紹了在pandas中遍歷DataFrame行的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-10-10
Python自動重新加載模塊詳解(autoreload module)
這篇文章主要介紹了Python自動重新加載模塊詳解(autoreload module),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04

