Python 使用 Pdb 调试
Python Debugging Using Pdb
我正在使用交互式图形化 Python 调试器和 ipdb(Canopy 的图形化调试器)。我正在处理的脚本有多个导入的模块和对它们各自函数的多次调用。每当我尝试调试 运行 时,执行都会卡在对导入模块函数(特别是子进程)的调用中的某处。我的两个主要问题是:
1) 运行ning 在调试模式下会显着降低运行速度吗?代码实际上并没有卡住,只是 运行 速度非常慢?
2) 有没有办法完全传递代码位并 运行 它们,就好像我什至没有调试一样?我想防止调试器深入到子进程中,只是像正常的 运行 一样执行它。
我可能会扔掉图形调试器并在终端上做任何事情,但如果可以的话我想避免这样做,因为图形界面真的很方便并且可以节省很多输入。
import pdb
a = "aaa"
pdb.set_trace()
b = "bbb"
c = "ccc"
final = a + b + c
print final
当你 运行 代码时你的输出然后它将开始调试并且控制将在 a="aaa"
之后停止
$ python abc.py
(Pdb) p a
'aaa'
(Pdb)
谢谢,沙市
我正在使用交互式图形化 Python 调试器和 ipdb(Canopy 的图形化调试器)。我正在处理的脚本有多个导入的模块和对它们各自函数的多次调用。每当我尝试调试 运行 时,执行都会卡在对导入模块函数(特别是子进程)的调用中的某处。我的两个主要问题是:
1) 运行ning 在调试模式下会显着降低运行速度吗?代码实际上并没有卡住,只是 运行 速度非常慢?
2) 有没有办法完全传递代码位并 运行 它们,就好像我什至没有调试一样?我想防止调试器深入到子进程中,只是像正常的 运行 一样执行它。
我可能会扔掉图形调试器并在终端上做任何事情,但如果可以的话我想避免这样做,因为图形界面真的很方便并且可以节省很多输入。
import pdb
a = "aaa"
pdb.set_trace()
b = "bbb"
c = "ccc"
final = a + b + c
print final
当你 运行 代码时你的输出然后它将开始调试并且控制将在 a="aaa"
$ python abc.py
(Pdb) p a
'aaa'
(Pdb)
谢谢,沙市