Léo*_* 준영 40 python simulation debugging
昨天我使用Python进行了模拟.我在变量和调试方面遇到了一些困难.
是否有适用于Python的软件,它提供了一个不错的调试器?
相关问题:调试Python代码的最佳方法是什么?
nos*_*klo 31
Winpdb是一个独立于平台的图形GPL Python调试器,支持通过网络进行远程调试,多线程,命名空间修改,嵌入式调试,加密通信,速度比pdb快20倍.
特征:

(来源:winpdb.org)
aoe*_*256 18
不要忘记验尸调试!抛出异常后,包含所有本地的堆栈帧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
Run Code Online (Sandbox Code Playgroud)
用法:
>>> 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}
Run Code Online (Sandbox Code Playgroud)
两者都有showmedo.com提供的截屏视频
| 归档时间: |
|
| 查看次数: |
31105 次 |
| 最近记录: |