Python PDB簡(jiǎn)單調(diào)試方式
Python編程語言對(duì)于那些有經(jīng)驗(yàn)的開發(fā)人員來說上手比較容易,而且這一語言的功能比較強(qiáng)大,是一款面向?qū)ο蟮耐ㄓ眯途幊陶Z言,可以幫助我們輕松的完成各種功能需求。我們今天先為大家介紹一下Python PDB的相關(guān)調(diào)試方法。#t#
使用過C語言的程序員肯定對(duì) GDB 不陌生, 它的單步調(diào)試等功能對(duì)于常常需要debug 的我們而言是非常重要的, 而作為動(dòng)態(tài)語言的 Python 它的動(dòng)態(tài)性等對(duì)于單步調(diào)試 帶來了一定的難度, 但是 Python 的標(biāo)準(zhǔn)模塊 PDB 則依照 GDB 較好地解決了 這個(gè)問題.本文就簡(jiǎn)單地介紹如何使用 PDB 進(jìn)行單步調(diào)試.
什么是Python PDB
根據(jù) PDB 在 Python 文檔中的定義, 它是一種為 Python 程序提供一種 交互的源碼調(diào)試功能的模塊.主要的特點(diǎn)(feature)包括:
條件斷點(diǎn)
源碼行級(jí)的單步調(diào)試
查看棧片斷
在任意的棧片斷的環(huán)境下對(duì)任意的代碼進(jìn)行求值(類似于 GDB )
代碼列出
其它
使用Python PDB進(jìn)行簡(jiǎn)單的調(diào)試
Python 程序也可以實(shí)現(xiàn)類似于c/c++的單步調(diào)試功能,而 Python 中的調(diào)試模塊 PDB 類似于c中的 GDB (常用命令等),可以進(jìn)行方便的調(diào)試。
下面是一個(gè)例子(debug_demo.py):
- #!/usr/bin/env Python
- _debug = True
- def debug_demo(val):
- if _debug:
- import pdb
- pdb.set_trace() #引入相關(guān)的pdb模塊
- if val < 10:
- print "less than 10"
- elif val<20:
- print "less than 20, but big than 10"
- else:
- print "other condition"
在命令行中按如下方法進(jìn)行調(diào)試:
- Python debug_demo.py
這時(shí)會(huì)進(jìn)入類似于gdb的界面,啟動(dòng)相關(guān)的調(diào)試
- > /home/tower/test/Python/debug.py(9)debug_demo()
- -> if val <= 10:
- (Pdb)
可以輸入h來查看可用的命令集(很類似于gdb)。 單步調(diào)試對(duì)于某些情況下的調(diào)試是非常有幫助的
結(jié)論
單步調(diào)試對(duì)于程序關(guān)鍵部分的邏輯跟蹤是很有意義的,所以Python PDB之于 Python 類似于 GDB 之于C/C++. 但是相比于 GDB 而言, PDB 的功能還稍顯弱了許多, 所以還無法在 PDB里使用到 GDB 的所有feature. 可以預(yù)期的是隨著 Python 轉(zhuǎn)至3.0及至后面的版本升級(jí), PDB 也會(huì)愈發(fā)完善.值得期待.






















