用pdb除錯有多種方式可選:
1. 命令列啟動目標程式,加上-m引數,這樣呼叫myscript.py的話斷點就是程式的執行第一行之前
python -m pdb myscript.py
2. 在python互動環境中啟用除錯
>>> import pdb
>>> import mymodule
>>> pdb.run(『mymodule.test()』)
在 python 中也可以像 gcc/gdb 那樣除錯程式,只要在執行 python 程式時引入 pdb 模組(假設要除錯的程式名為 d.py):
$ vi d.py執行上面的命令後進入以下介面,可以輸入類似 gdb 的命令來改變程式的執行流程:#!/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
$ python -m pdb 1.pylist 顯示程式的最近**段:> d.py(3)()
-> def main():
(pdb)
(pdb) list1 #!/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]
(pdb) next用 break 在第6行設定乙個斷點:> d.py(9)()
-> if __name__ == '__main__':
(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]
(pdb) break d.main還可以給斷點加條件,比如設定條件只有當 sum > 50 的時候才 break: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]
(pdb) break d.py:6, sum > 50如果想檢視某個變數的值,可以用 pp 命令列印出來:breakpoint 1 at d.py:6
(pdb) step可以直接在程式裡使用 pdb 模組,import pdb 後 pdb.set_trace():> d.py(5)main()
-> for i in xrange(100):
(pdb) pp sum
0
#!/usr/bin/python這樣只要執行程式 ./d.py 就可以直接執行到 print sum 處: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()
$ ./d.py總結> d.py(9)main()
-> print sum
(pdb)
命令 用途
break 或 b
設定斷點
continue 或 c
繼續執行程式
list 或 l
檢視當前行的**段
step 或 s
進入函式
return 或 r
執行**直到從當前函式返回
exit 或 q
中止並退出
next 或 n
執行下一行
pp 列印變數的值
help
幫助參考自:
用PDB庫除錯Python程式
如果使用過微軟技術的朋友應該體會過微軟的visual studio系列ide給debug程式帶來的方便,換了個工作就沒有visual studio了,對於我這種從未在非gui環境下除錯過程式的人來說實在有點不爽,今天花了點時間看了一下python自帶的pdb庫,發現用pdb來除錯程式還是很方便的,當...
用PDB庫除錯Python程式
如果使用過微軟技術的朋友應該體會過微軟的visual studio系列ide給debug程式帶來的方便,換了個工作就沒有visual studio了,對於我這種從未在非gui環境下除錯過程式的人來說實在有點不爽,今天花了點時間看了一下python自帶的pdb庫,發現用pdb來除錯程式還是很方便的,當...
PDB除錯Python程式
pdb是python內建的除錯工具,它可以在終端中除錯python程式,這允許pdb在很多無法安裝ide的伺服器上使用.雖然遠端除錯使用廣泛,但在必要的時候 比如難以在本地搭建執行環境 pdb仍然是乙個便利的選擇.我們可以在python源 中設定斷點 import pdb def func for ...