【发布时间】:2016-09-30 14:10:25
【问题描述】:
在 Python(2.7,在 Linux 上运行)中调试脚本时,我偶尔会注入 pdb.set_trace()(注意我实际上使用的是 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 运行我的脚本,例如
python my_script.py
有时在调试过程中,我意识到我不想运行 do_something_dangerous()。停止程序执行以使 do_something_dangerous() 不运行并且我可以退出到 shell 的最简单方法是什么?
据我了解,按 ctrl-d(或发出调试器的退出命令)将简单地退出 ipdb,程序将继续运行(在我上面的示例中)。按 ctrl-c 似乎会引发一个 KeyboardInterrupt,但我从未理解它引发的上下文。
我希望像 ctrl-q 这样的东西可以简单地取消整个过程,但我找不到任何东西。
我知道我的示例非常做作,但我的问题是,当正在调试的代码设置为捕获异常时,如何从 pdb 中止执行。这不是关于如何重构上面的代码使其工作!
【问题讨论】: