日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

使用PDB簡(jiǎn)單調(diào)試Python程序簡(jiǎn)明指南

系統(tǒng) 1899 0

在 Python 中也可以像 gcc/gdb 那樣調(diào)試程序,只要在運(yùn)行 Python 程序時(shí)引入 pdb 模塊(假設(shè)要調(diào)試的程序名為 d.py):

復(fù)制代碼 代碼如下:

$ vi d.py
#!/usr/bin/python

def main():
??????? i, sum = 1, 0
??????? for i in xrange(100):
??????????????? sum = sum + i
??????? print sum

if __name__ == '__main__':
??????? main()

$ python -m pdb d.py


運(yùn)行上面的命令后進(jìn)入以下界面,可以輸入類似 gdb 的命令來改變程序的執(zhí)行流程:
復(fù)制代碼 代碼如下:

$ python -m pdb 1.py
> d.py(3)()
-> def main():
(Pdb)

list 顯示程序的最近代碼段:
復(fù)制代碼 代碼如下:

(Pdb) list
? 1? ?#!/usr/bin/python
? 2? ?
? 3? ->?def main():
? 4? ??i, sum = 1, 0
? 5? ??for i in xrange(100):
? 6? ???sum = sum + i
? 7? ??print sum
? 8? ?
? 9? ?if __name__ == '__main__':
?10? ??main()
[EOF]

next 或者 n 執(zhí)行下一行代碼:
復(fù)制代碼 代碼如下:

(Pdb) next
> d.py(9)()
-> if __name__ == '__main__':

用 break 在第6行設(shè)置一個(gè)斷點(diǎn):
復(fù)制代碼 代碼如下:

(Pdb) break d.py:6
Breakpoint 1 at d.py:6

(Pdb) list
? 1? ?#!/usr/bin/python
? 2? ?
? 3? ?def main():
? 4? ??i, sum = 1, 0
? 5? ->??for i in xrange(100):
? 6 B???sum = sum + i
? 7? ??print sum
? 8? ?
? 9? ?if __name__ == '__main__':
?10? ??main()
[EOF]


如果想在函數(shù)處設(shè)置斷點(diǎn):
復(fù)制代碼 代碼如下:

(Pdb) break d.main
d.py:3

(Pdb) list
? 1? ?#!/usr/bin/python
? 2? ?
? 3 B?def main():
? 4? ->??i, sum = 1, 0
? 5? ??for i in xrange(100):
? 6? ???sum = sum + i
? 7? ??print sum
? 8? ?
? 9? ?if __name__ == '__main__':
?10? ??main()
[EOF]


還可以給斷點(diǎn)加條件,比如設(shè)置條件只有當(dāng) sum > 50 的時(shí)候才 break:
復(fù)制代碼 代碼如下:

(Pdb) break d.py:6, sum > 50
Breakpoint 1 at d.py:6

如果想查看某個(gè)變量的值,可以用 pp 命令打印出來:
復(fù)制代碼 代碼如下:

(Pdb) step
> d.py(5)main()
-> for i in xrange(100):
(Pdb) pp sum
0

可以直接在程序里使用 pdb 模塊,import pdb 后 pdb.set_trace():
復(fù)制代碼 代碼如下:

#!/usr/bin/python
import pdb

def main():
??????? i, sum = 1, 0
??????? for i in xrange(100):
??????????????? sum = sum + i
??????? pdb.set_trace()
??????? print sum

if __name__ == '__main__':
??????? main()


這樣只要運(yùn)行程序 ./d.py 就可以直接運(yùn)行到 print sum 處:
復(fù)制代碼 代碼如下:

$ ./d.py
> d.py(9)main()
-> print sum
(Pdb)

總結(jié)

使用PDB簡(jiǎn)單調(diào)試Python程序簡(jiǎn)明指南_第1張圖片


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 大冶市| 仲巴县| 长阳| 那曲县| 新巴尔虎右旗| 富宁县| 扬州市| 且末县| 天祝| 曲水县| 永城市| 长治市| 安阳县| 灵寿县| 上思县| 剑川县| 汪清县| 拉萨市| 策勒县| 微山县| 资中县| 青州市| 大新县| 台南县| 神池县| 伊春市| 新乡县| 罗田县| 巴东县| 济阳县| 江永县| 蒙城县| 庆元县| 云霄县| 文水县| 四川省| 湖南省| 佛学| 甘肃省| 临沧市| 黎川县|