我想利用Python的内省能力进行调试/开发,但找不到合适的工具。
我需要在特定位置或特定事件(比如异常)进入shell(例如IPython),并将shell的局部变量和全局变量设置为帧的变量。
这是我自己快速的hack示例:
使用“断点”或try/except从run_debug()调用。但是,显然,这需要很多改进,特别是要正确处理线程应用程序。
winpdb具有控制台断点,但我没有找到快速从中运行适当的Python shell的方法,并且eval()/exec()对于长时间调试不太方便。
我需要在特定位置或特定事件(比如异常)进入shell(例如IPython),并将shell的局部变量和全局变量设置为帧的变量。
这是我自己快速的hack示例:
import inspect
from IPython.Shell import IPShellEmbed
def run_debug():
stack = inspect.stack()
frame = stack[1][0]
loc = frame.f_locals
glob = frame.f_globals
shell = IPShellEmbed()
shell(local_ns=loc, global_ns=glob)
使用“断点”或try/except从run_debug()调用。但是,显然,这需要很多改进,特别是要正确处理线程应用程序。
winpdb具有控制台断点,但我没有找到快速从中运行适当的Python shell的方法,并且eval()/exec()对于长时间调试不太方便。