python – 如何从堆栈跟踪中提取局部变量?
发布时间:2020-12-16 22:49:22 所属栏目:Python 来源:网络整理
导读:假设我有一个引发意外异常的函数,所以我将它包装在ipdb中: def boom(x,y): try: x / y except Exception as e: import ipdb; ipdb.set_trace()def main(): x = 2 y = 0 boom(x,y)if __name__ == '__main__': main() 我可以向上移动堆栈以找出x和y具有的值:
假设我有一个引发意外异常的函数,所以我将它包装在ipdb中:
我可以向上移动堆栈以找出x和y具有的值:
但是,在调试时,我想把调试器放在最顶层:
我可以显示回溯,但我无法查看函数内部的变量:
异常发生时,异常对象显然仍然具有对堆栈的引用.我可以在这里访问x和y,即使堆栈已经解开了吗? 最佳答案
事实证明,可以从traceback对象中提取变量.
要手动提取值:
更好的是,您可以使用异常在该堆栈上显式执行事后调试:
这让我们直接看到了令人讨厌的代码:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |