本篇內(nèi)容介紹了“如何利用PDB實(shí)現(xiàn)Python程序調(diào)試”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)公司始終堅(jiān)持【策劃先行,效果至上】的經(jīng)營理念,通過多達(dá)十年累計(jì)超上千家客戶的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的全網(wǎng)整合營銷推廣解決方案,現(xiàn)已廣泛運(yùn)用于各行各業(yè)的客戶,其中包括:成都報(bào)廢汽車回收等企業(yè),備受客戶稱譽(yù)。
如何進(jìn)行Python程序調(diào)試?
1.加入斷點(diǎn)
在需要插入斷點(diǎn)的地方,加入紅色部分代碼:如果_DEBUG值為True,則在該處開始調(diào)試(加入_DEBUG的原因是為了方便打開/關(guān)閉調(diào)試)。
#!/usr/bin/python _DEBUG=True def debug_demo(val): if _DEBUG == True: import PDB PDB.set_trace() if val <= 1600 : print "level 1" print 0 elif val <= 3500 : print "level 2" print (val - 1600) * 0.05 elif val <= 6500 : print "level 3" print (val - 3500) * 0.10 + (3500-1600) * 0.05 else: print "level 4" print (val - 6500) * 0.20 + (6500-3500) * 0.10 + (3500-1600) * 0.05 #~def debug_demo if __name__ == "__main__": debug_demo(4500)
2.開始運(yùn)行Python程序調(diào)試
運(yùn)行程序./debug_demo.py,得到
> /usr/local/qspace/user_network/debug_demo.py(7)debug_demo() -> if val <= 1600 : (PDB)
-> val <= 1600 : 指示當(dāng)前執(zhí)行的語句,(PDB)等待你的調(diào)試指令. PDB的指令很豐富,輸入h指令可以查看指令的使用方法。下面簡單介紹Python程序調(diào)試常用指令:
查看代碼上下文,l(小寫L)
(PDB) _DEBUG=True def debug_demo(val): if _DEBUG == True: import PDB PDB.set_trace() -> if val <= 1600 : print "level 1" print 0 elif val <= 3500 : print "level 2" print (val - 1600) * 0.05 (PDB)
左邊是行號,右邊是代碼正文。
監(jiān)視變量:p 變量名
(PDB) p val 4500 (PDB)
單步執(zhí)行: n
-> elif val <= 3500 : (PDB) import PDB PDB.set_trace() if val <= 1600 : print "level 1" print 0 -> elif val <= 3500 : print "level 2" print (val - 1600) * 0.05 elif val <= 6500 : print "level 3" print (val - 3500) * 0.10 + (3500-1600) * 0.05
加入斷點(diǎn):b 行號
(PDB) b 14
運(yùn)行到斷點(diǎn): c
(PDB) c > /***** -> print "level 3" (PDB) print 0 elif val <= 3500 : print "level 2" print (val - 1600) * 0.05 elif val <= 6500 : B-> print "level 3" print (val - 3500) * 0.10 + (3500-1600) * 0.05 else: print "level 4" print (val - 6500) * 0.20 + (6500-3500) * 0.10 + (3500-1600) * 0.05
執(zhí)行到函數(shù)返回前: r
(PDB) r level 3 195.0 --Return-- > /****() ->None -> print (val - 3500) * 0.10 + (3500-1600) * 0.05 (PDB)
說明:
PDB還有很多其他很多有用的指令,讀者可以自行探索。輸入h,h 命令。就可以得到命令的詳細(xì)幫助。
“如何利用PDB實(shí)現(xiàn)Python程序調(diào)試”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!