您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“python調(diào)試模塊ipdb怎么使用”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“python調(diào)試模塊ipdb怎么使用”吧!
ipdb是用來(lái)python中用以交互式debug的模塊,可以直接利用pip安裝;
其功能類似于pycharm中 python控制臺(tái),
而使用ipdb 的優(yōu)點(diǎn),便是直接在代碼中調(diào)試,
避免了在python控制臺(tái),或者重新設(shè)置一些簡(jiǎn)單變量。
pip install ipdb
當(dāng)程序運(yùn)行到ipdb.set_trace()的地方會(huì)自動(dòng)進(jìn)入debug模式。
for i in range(5): print(i) ipdb.set_trace()
n→ \to→next
ENTER→ \to→重復(fù)上次命令
q→ \to→退出
p<變量>→ \to→打印變量
c→ \to→繼續(xù)
l→ \to→查找當(dāng)前位于哪里
s→ \to→進(jìn)入子程序
r→ \to→運(yùn)行直到子程序結(jié)束
命令式 上面的方法很方便,但是也有不靈活的缺點(diǎn)。對(duì)于一段比較棘手的代碼,我們可能需要按步執(zhí)行,邊運(yùn)行邊跟蹤代碼流并進(jìn)行調(diào)試,這時(shí)候使用交互式的命令式調(diào)試方法更加有效。啟動(dòng)IPDB調(diào)試環(huán)境的方法也很簡(jiǎn)單: python -m ipdb your_code.py 常用命令 IPDB調(diào)試環(huán)境提供的常見命令有: 幫助 使用h即可調(diào)出IPDB的幫助??梢允褂胔elp command的方法查詢特定命令的具體用法。 下一條語(yǔ)句 使用n(next)執(zhí)行下一條語(yǔ)句。注意一個(gè)函數(shù)調(diào)用也是一個(gè)語(yǔ)句。如何能夠?qū)崿F(xiàn)類似“進(jìn)入函數(shù)內(nèi)部”的功能呢? 進(jìn)入函數(shù)內(nèi)部 使用s(step into)進(jìn)入函數(shù)調(diào)用的內(nèi)部。 打斷點(diǎn) 使用b line_number(break)的方式給指定的行號(hào)位置加上斷點(diǎn)。使用b file_name:line_number的方法給指定的文件(還沒執(zhí)行到的代碼可能在外部文件中)中指定行號(hào)位置打上斷點(diǎn)。 另外,打斷點(diǎn)還支持指定條件下進(jìn)入,可以查詢幫助文檔。 一直執(zhí)行直到遇到下一個(gè)斷點(diǎn) 使用c(continue)執(zhí)行代碼直到遇到某個(gè)斷點(diǎn)或程序執(zhí)行完畢。 一直執(zhí)行直到返回 使用r(return)執(zhí)行代碼直到當(dāng)前所在的這個(gè)函數(shù)返回。 跳過某段代碼 使用j line_number(jump)可以跳過某段代碼,直接執(zhí)行指定行號(hào)所在的代碼。 更多上下文 在IPDB調(diào)試環(huán)境中,默認(rèn)只顯示當(dāng)前執(zhí)行的代碼行,以及其上下各一行的代碼。如果想要看到更多的上下文代碼,可以使用l first[, second](list)命令。 其中first指示向上最多顯示的行號(hào),second指示向下最多顯示的行號(hào)(可以省略)。當(dāng)second小于first時(shí),second指的是從first開始的向下的行數(shù)(相對(duì)值vs絕對(duì)值)。 根據(jù)SO上的這個(gè)問題,你還可以修改IPDB的源碼,一勞永逸地改變上下文的行數(shù)。 我在哪里 調(diào)試興起,可能你會(huì)忘了自己目前所在的行號(hào)。例如在打印了若干變量值后,屏幕完全被這些值占據(jù)。使用w或者where可以打印出目前所在的行號(hào)位置以及上下文信息。 這是啥 我們可以使用whatis variable_name的方法,查看變量的類別(感覺有點(diǎn)雞肋,用type也可以辦到)。 列出當(dāng)前函數(shù)的全部參數(shù) 當(dāng)你身處一個(gè)函數(shù)內(nèi)部的時(shí)候,可以使用a(argument)打印出傳入函數(shù)的所有參數(shù)的值。 打印 使用p(print)和pp(pretty print)可以打印表達(dá)式的值。 清除斷點(diǎn) 使用cl或者clear file:line_number清除斷點(diǎn)。如果沒有參數(shù),則清除所有斷點(diǎn)。 再來(lái)一次 使用restart重新啟動(dòng)調(diào)試器,斷點(diǎn)等信息都會(huì)保留。restart實(shí)際是run的別名,使用run args的方式傳入?yún)?shù)。 退出 使用q退出調(diào)試,并清除所有信息。 當(dāng)然,這并不是IPDB的全部。其他的命令還請(qǐng)參照幫助文檔。文檔在手,天下我有!
到此,相信大家對(duì)“python調(diào)試模塊ipdb怎么使用”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。