在Python(2.7,运行于Linux)中调试脚本时,我偶尔会注入pdb.set_跟踪()(请注意,我实际上使用的是ipdb),例如:
import ipdb as pdb
try:
do_something()
# I'd like to look at some local variables before running do_something_dangerous()
pdb.set_trace()
except:
pass
do_something_dangerous()
我通常从shell运行脚本,例如
^{pr2}$有时在调试会话期间,我意识到我不想运行do\u something\u hargerous()。什么是停止程序执行的最简单的方法,这样dou\u something\u hargerous()就不会运行,我可以退出shell了?在
据我所知,按ctrl-d(或发出调试器的quit命令)将简单地退出ipdb,程序将继续运行(在上面的示例中)。按ctrl-c似乎引发了一个键盘中断,但我一直不明白它是在什么情况下引发的。在
我希望像ctrl-q这样的东西简单地记录整个过程,但是我没有找到任何东西。在
我知道我的例子是高度做作的,但是我的问题是当被调试的代码被设置为捕捉异常时,如何从pdb中止执行。这不是关于如何重组上面的代码,使其工作!在
我发现ctrl-z挂起python/ipdb进程,然后用'kill%1'终止进程,效果很好,而且输入速度相当快(使用bash别名k='kill%1')。我不确定有没有更干净/更简单的东西。在
从module docs:
具体来说,这将导致下一个被调用的调试器函数引发^{} 异常。在
相关问题 更多 >
编程相关推荐