欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python工具PDB調(diào)試器的使用方法詳解

 更新時(shí)間:2023年11月03日 08:58:50   作者:郝同學(xué)的測(cè)開筆記  
還記得你是如何進(jìn)行代碼調(diào)試的嗎?有人會(huì)說,我是添加一些輸出語句,有人說,我是使用IDE自帶的設(shè)置斷點(diǎn)功能,當(dāng)然都沒有錯(cuò),只是看哪個(gè)更合適,更能提升效率,但這都不是我們今天講的重點(diǎn),今天的重點(diǎn)是Python中PDB調(diào)試器的使用方法,需要的朋友可以參考下

pdb重要嗎?

當(dāng)然很重要。前言中提到的打印,確實(shí)是調(diào)試程序的常用手段,但是這只局限于小型程序,如果對(duì)于一個(gè)很大的程序,那每次都要運(yùn)行整個(gè)程序才能看到打印的值,顯然是我們不能接受的。對(duì)于IDE提供的斷點(diǎn)功能確實(shí)很方便,但是對(duì)于一些vim黨來說就的另尋方案了。 Python 的 pdb,正是其自帶的一個(gè)調(diào)試庫。它為 Python 程序提供了交互式的源代碼調(diào)試功能,是命令行版本的 IDE 斷點(diǎn)調(diào)試器,完美地解決了我們剛剛討論的這個(gè)問題。

pdb介紹

源碼:Lib/pdb.py

pdb模塊定義了一個(gè)交互式源代碼調(diào)試器,用于 Python 程序。它支持在源碼行間設(shè)置(有條件的)斷點(diǎn)和單步執(zhí)行,檢視堆棧幀,列出源碼列表,以及在任何堆棧幀的上下文中運(yùn)行任意 Python 代碼。它還支持事后調(diào)試,可以在程序控制下調(diào)用。

如何使用pdb?

啟動(dòng) PDB 調(diào)試器

要在 Python 代碼中啟動(dòng) PDB 調(diào)試器,需要在需要調(diào)試的代碼行上加入 import pdb; pdb.set_trace() 代碼。這樣,在運(yùn)行代碼時(shí),程序?qū)?huì)在此處暫停,并啟動(dòng) PDB 調(diào)試器。

例如,以下代碼演示了如何使用 PDB 調(diào)試器調(diào)試 Python 代碼:

import pdb
?
def add_numbers(a, b):
 ? ?pdb.set_trace()
 ? ?return a + b
?
result = add_numbers(5, 10)
print(result)

在執(zhí)行以上代碼時(shí),當(dāng)程序執(zhí)行到 pdb.set_trace() 時(shí),程序?qū)?huì)暫停,并啟動(dòng) PDB 調(diào)試器。此時(shí),你可以輸入命令來查看變量、檢查堆棧、單步執(zhí)行代碼等。

當(dāng)然,還有另一種方式,像這樣:

def add_numbers(a, b):
 ? ?breakpoint()
 ? ?return a + b
?
result = add_numbers(5, 10)
print(result)

3.7 新版功能: 內(nèi)置函數(shù) breakpoint(),當(dāng)以默認(rèn)參數(shù)調(diào)用它時(shí),可以用來代替 import pdb; pdb.set_trace()。

如果你是想通過命令行來啟動(dòng),當(dāng)然也是支持的,像這樣

python3 -m pdb pdb_demo.py

基本的 PDB 命令

在 PDB 調(diào)試器中,有許多命令可以使用。以下是一些最常用的 PDB 命令:

  • n(ext):單步執(zhí)行代碼
  • s(tep):進(jìn)入子函數(shù)或方法
  • r(eturn):執(zhí)行代碼直到當(dāng)前函數(shù)返回
  • c(ontinue):繼續(xù)執(zhí)行代碼直到下一個(gè)斷點(diǎn)或程序結(jié)束
  • l(ist):顯示當(dāng)前代碼段周圍的源代碼
  • p:打印變量的值
  • h(elp):查看幫助信息
  • b(reak): 設(shè)置斷點(diǎn)。比如b 10,在第10行設(shè)置一個(gè)斷點(diǎn) 。行號(hào)可以加上文件名和冒號(hào)作為前綴,以在另一個(gè)文件中設(shè)置一個(gè)斷點(diǎn)。
  • c l(ear): 清楚斷點(diǎn)
  • q(uit):退出調(diào)試器。 被執(zhí)行的程序?qū)⒈恢兄埂?/li>
  • restart :重啟被調(diào)試的 Python 程序。

使用 PDB 調(diào)試器調(diào)試 Python 代碼

在使用 PDB 調(diào)試器調(diào)試 Python 代碼時(shí),以下是一些常用的技巧:

  • 在使用 n(ext)s(tep) 命令時(shí),可以在命令后加上數(shù)字,以指定要執(zhí)行多少次代碼。例如,使用 n 3 命令將會(huì)執(zhí)行下三行代碼。
  • 在使用 l(ist) 命令時(shí),可以在命令后加上代碼行號(hào),以指定要顯示哪一段源代碼。例如,使用 l 5,10 命令將會(huì)顯示第 5 行到第 10 行的代碼。
  • 在使用 p 命令時(shí),可以打印表達(dá)式的值,并以逗號(hào)分隔打印多個(gè)表達(dá)式的值。例如,使用 p a, b, c 命令將會(huì)打印變量 a、b 和 c 的值。
  • 在使用 PDB 調(diào)試器時(shí),你可以使用 ! 命令執(zhí)行 Python 表達(dá)式。例如,使用 !a + b 命令將會(huì)計(jì)算 a + b 的值。

最后

在 Python 開發(fā)過程中,PDB 調(diào)試器是一個(gè)非常有用的工具,它可以幫助你快速定位和解決代碼中的問題。除了這些常用命令,還有許多其他的命令可以使用,這里就不在一一贅述了。你可以參考對(duì)應(yīng)的官方文檔(https://docs.python.org/3/library/pdb.html#module-pdb),來熟悉這些用法。

以上就是Python中PDB調(diào)試器的使用方法詳解的詳細(xì)內(nèi)容,更多關(guān)于Python PDB調(diào)試器用法的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用python爬蟲獲取黃金價(jià)格的核心代碼

    使用python爬蟲獲取黃金價(jià)格的核心代碼

    這篇文章主要介紹了利用python爬蟲獲取黃金價(jià)格,需要的朋友可以參考下
    2018-06-06
  • pytest自定義命令行參數(shù)的實(shí)現(xiàn)

    pytest自定義命令行參數(shù)的實(shí)現(xiàn)

    本文主要介紹了在使用pytest運(yùn)行測(cè)試用例時(shí),通過傳遞自定義命令行參數(shù)來啟動(dòng)mitmdump進(jìn)程進(jìn)行抓包,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-12-12
  • Python的10道簡單測(cè)試題(含答案)

    Python的10道簡單測(cè)試題(含答案)

    這篇文章主要介紹了Python的10道簡單測(cè)試題(含答案),學(xué)習(xí)了一段時(shí)間python的小伙伴來做幾道測(cè)試題檢驗(yàn)一下自己的學(xué)習(xí)成果吧
    2023-04-04
  • python 自動(dòng)刷新網(wǎng)頁的兩種方法

    python 自動(dòng)刷新網(wǎng)頁的兩種方法

    這篇文章主要介紹了python 自動(dòng)刷新網(wǎng)頁的兩種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Manjaro、pip、conda更換國內(nèi)源的方法

    Manjaro、pip、conda更換國內(nèi)源的方法

    這篇文章主要介紹了Manjaro、pip、conda更換國內(nèi)源的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Python gevent協(xié)程切換實(shí)現(xiàn)詳解

    Python gevent協(xié)程切換實(shí)現(xiàn)詳解

    這篇文章主要介紹了Python gevent協(xié)程切換實(shí)現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Mac 使用python3的matplot畫圖不顯示的解決

    Mac 使用python3的matplot畫圖不顯示的解決

    今天小編就為大家分享一篇Mac 使用python3的matplot畫圖不顯示的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Pycharm社區(qū)版創(chuàng)建Flask項(xiàng)目的實(shí)現(xiàn)步驟

    Pycharm社區(qū)版創(chuàng)建Flask項(xiàng)目的實(shí)現(xiàn)步驟

    本文主要介紹了Pycharm社區(qū)版創(chuàng)建Flask項(xiàng)目,包括設(shè)置Python環(huán)境、安裝Flask庫以及創(chuàng)建基本的項(xiàng)目結(jié)構(gòu),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06
  • Python中利用sorted()函數(shù)排序的簡單教程

    Python中利用sorted()函數(shù)排序的簡單教程

    這篇文章主要介紹了Python中利用sorted()函數(shù)排序的簡單教程,sorted()函數(shù)有返回值,在Python的排序?qū)崿F(xiàn)中發(fā)揮著相當(dāng)重要的作用,需要的朋友可以參考下
    2015-04-04
  • Python使用pywebview開發(fā)桌面應(yīng)用的全過程

    Python使用pywebview開發(fā)桌面應(yīng)用的全過程

    當(dāng)使用桌面應(yīng)用程序的時(shí)候,有沒有那么一瞬間,想學(xué)習(xí)一下桌面應(yīng)用程序開發(fā)?下面這篇文章主要給大家介紹了關(guān)于Python使用pywebview開發(fā)桌面應(yīng)用的相關(guān)資料,需要的朋友可以參考下
    2022-06-06

最新評(píng)論