发布于 2009-10-25 20:32:37
您可以使用pdb模块,在任何地方插入pdb.set_trace()
,它将充当断点。
>>> import pdb
>>> a="a string"
>>> pdb.set_trace()
--Return--
> <stdin>(1)<module>()->None
(Pdb) p a
'a string'
(Pdb)
若要继续执行,请使用c
(或cont
或continue
)。
可以使用pdb执行任意Python表达式。例如,如果发现错误,可以更正代码,然后键入类型表达式在运行的代码中具有相同的效果。
ipdb是IPython的pdb版本。它允许使用所有的IPython功能,包括选项卡完成。
对于一个未被察觉的异常,将pdb设置为自动运行也是可能的。
比德贝被写成是Pdb的增强版本。福利?
发布于 2011-06-20 14:46:13
http://pypi.python.org/pypi/pudb是一个全屏的、基于控制台的Python调试器.
它的目标是在一个更加轻量级和键盘友好的包中提供现代基于GUI的调试器的所有细节。在终端中,PuDB允许您在编写和测试代码的地方调试代码。如果您曾经使用过优秀的(但现在很古老)基于DOS的Turbo或C工具,那么PuDB的UI可能看起来很熟悉。
很适合调试独立脚本,只需运行
python -m pudb.run my-script.py
发布于 2009-10-26 02:16:35
如果使用pdb,则可以为快捷方式定义别名。我用这些:
# Ned's .pdbrc
# Print a dictionary, sorted. %1 is the dict, %2 is the prefix for the names.
alias p_ for k in sorted(%1.keys()): print "%s%-15s= %-80.80s" % ("%2",k,repr(%1[k]))
# Print the instance variables of a thing.
alias pi p_ %1.__dict__ %1.
# Print the instance variables of self.
alias ps pi self
# Print the locals.
alias pl p_ locals() local:
# Next and list, and step and list.
alias nl n;;l
alias sl s;;l
# Short cuts for walking up and down the stack
alias uu u;;u
alias uuu u;;u;;u
alias uuuu u;;u;;u;;u
alias uuuuu u;;u;;u;;u;;u
alias dd d;;d
alias ddd d;;d;;d
alias dddd d;;d;;d;;d
alias ddddd d;;d;;d;;d;;d
https://stackoverflow.com/questions/1623039
复制