对Python调试工具的建议?

昨天我使用Python做了一个模拟。我有一些变量和调试的困难。

有什么Python的软件,提供了一个体面的调试器?

相关问题:What is the best way to debug my Python code?

不要忘记事后调试!抛出异常后,具有所有本地化的堆栈帧包含在sys.last_traceback中。你可以做pdb.pm()到堆栈框架抛出异常,然后p(retty)p(rint)的locals()。

下面是一个函数,它使用这些信息从堆栈中提取局部变量。

def findlocals(search, startframe=None, trace=False):

    from pprint import pprint
    import inspect, pdb

    startframe = startframe or sys.last_traceback
    frames = inspect.getinnerframes(startframe)

    frame = [tb for (tb, _, lineno, fname, _, _) in frames
             if search in (lineno, fname)][0]

    if trace:
        pprint(frame.f_locals)
        pdb.set_trace(frame)
    return frame.f_locals

用法:

>>> def screwyFunc():
    a = 0
    return 2/a

>>> screwyFunc()

Traceback (most recent call last):
  File "<pyshell#62>", line 1, in <module>
    screwyFunc()
  File "<pyshell#55>", line 3, in screwyFunc
    return 2/a
ZeroDivisionError: integer division or modulo by zero
>>> findlocals('screwyFunc')
{'a': 0}
http://stackoverflow.com/questions/477193/suggestions-for-python-debugging-tools

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:对Python调试工具的建议?