自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python PDB簡單調試方式

開發(fā) 后端
Python PDB是做什么用的?相信對于大多數(shù)初學者來說可能對這一概念還是比較模糊的。我們今天將會在這里為大家詳細介紹一下這方面的知識。

Python編程語言對于那些有經驗的開發(fā)人員來說上手比較容易,而且這一語言的功能比較強大,是一款面向對象的通用型編程語言,可以幫助我們輕松的完成各種功能需求。我們今天先為大家介紹一下Python PDB的相關調試方法。#t#

使用過C語言的程序員肯定對 GDB 不陌生, 它的單步調試等功能對于常常需要debug 的我們而言是非常重要的, 而作為動態(tài)語言的 Python 它的動態(tài)性等對于單步調試 帶來了一定的難度, 但是 Python 的標準模塊 PDB 則依照 GDB 較好地解決了 這個問題.本文就簡單地介紹如何使用 PDB 進行單步調試.

什么是Python PDB

根據 PDB 在 Python 文檔中的定義, 它是一種為 Python 程序提供一種 交互的源碼調試功能的模塊.主要的特點(feature)包括:

條件斷點

源碼行級的單步調試

查看棧片斷

在任意的棧片斷的環(huán)境下對任意的代碼進行求值(類似于 GDB )

代碼列出

其它

使用Python PDB進行簡單的調試

Python 程序也可以實現(xiàn)類似于c/c++的單步調試功能,而 Python 中的調試模塊 PDB 類似于c中的 GDB (常用命令等),可以進行方便的調試。

下面是一個例子(debug_demo.py):

  1. #!/usr/bin/env Python  
  2. _debug = True 
  3. def debug_demo(val):  
  4. if _debug:  
  5. import pdb  
  6. pdb.set_trace() #引入相關的pdb模塊  
  7. if val < 10: 
  8. print "less than 10"  
  9. elif val<20: 
  10. print "less than 20, but big than 10"  
  11. else:  
  12. print "other condition" 

在命令行中按如下方法進行調試:

 

  1. Python debug_demo.py 

 

這時會進入類似于gdb的界面,啟動相關的調試

  1. > /home/tower/test/Python/debug.py(9)debug_demo()  
  2. -> if val <= 10:  
  3. (Pdb) 

可以輸入h來查看可用的命令集(很類似于gdb)。 單步調試對于某些情況下的調試是非常有幫助的

結論

單步調試對于程序關鍵部分的邏輯跟蹤是很有意義的,所以Python PDB之于 Python 類似于 GDB 之于C/C++. 但是相比于 GDB 而言, PDB 的功能還稍顯弱了許多, 所以還無法在 PDB里使用到 GDB 的所有feature. 可以預期的是隨著 Python 轉至3.0及至后面的版本升級, PDB 也會愈發(fā)完善.值得期待.

責任編輯:曹凱 來源: 博客園
相關推薦

2010-03-04 15:45:56

Python程序調試

2010-03-16 10:10:57

Java線程通信

2011-02-22 11:07:24

Python

2021-01-19 11:56:19

Python開發(fā)語言

2021-08-24 23:23:35

Python工具開發(fā)

2024-12-23 14:04:26

Python開發(fā)調試工具

2022-07-31 19:57:26

react項目VSCode

2021-05-14 07:02:00

Python方式應用

2021-05-14 17:38:11

Python工具程序

2021-10-14 10:05:17

開源項目代碼

2011-08-31 16:51:12

Lua調試器

2010-03-01 16:59:31

WCF異常調試

2010-01-26 14:59:29

Android調試程序

2018-12-03 13:30:07

2010-03-10 15:05:22

linux系統(tǒng)備份方式

2019-04-04 14:05:20

consolejs前端

2009-06-23 11:05:05

Mircosoft C

2010-06-10 17:45:03

Linux 開發(fā)工具

2022-12-30 11:05:40

Rust代碼

2019-04-01 07:36:47

深度學習神經網絡機器學習
點贊
收藏

51CTO技術棧公眾號