我使用Python Shell中嘗試做調試調試在python
我設置一個斷點
我所做的:
>>> import pdb
>>> import mymodule
>>> pdb.run('mymodule.test()')
但它只是運行我的程序,而不在停止斷點!
我donig錯了什麼?
我使用Python Shell中嘗試做調試調試在python
我設置一個斷點
我所做的:
>>> import pdb
>>> import mymodule
>>> pdb.run('mymodule.test()')
但它只是運行我的程序,而不在停止斷點!
我donig錯了什麼?
你是如何設置斷點的?嘗試在代碼中添加該行:
import pdb
pdb.set_trace()
然後運行它。如果你在pdb shell中,那麼「break foo.py:45」將在文件foo.py的第45行中斷開。
下面是一些有用的命令:
h help, list commands
s step through current line
n step to next line
u go up the stack
c continue execution
檢查通過鍵入 'H' 的完整列表。而「幫助X」會給你幫助的命令X.另外,請參閱本教程:
的typical usage闖入調試器正在運行的程序是插入
import pdb; pdb.set_trace()
在您想要闖入調試器的位置。然後,您可以按照此語句遍歷代碼,並在沒有調試器的情況下使用c命令繼續運行。
的typical usage檢查一個崩潰的程序是:
>>> import pdb
>>> import mymodule
>>> mymodule.test()
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "./mymodule.py", line 4, in test
test2()
File "./mymodule.py", line 3, in test2
print spam
NameError: spam
>>> pdb.pm()
> ./mymodule.py(3)test2()
-> print spam
(Pdb)
Python的網站提供了一個非常複雜的教程pdb
。去http://docs.python.org/library/pdb.html。
太棒了!有用。現在如何做我通過代碼? – 2010-07-28 22:54:02
請參閱我的答案更新。 – ars 2010-07-28 23:04:00