之后如何停止python程序pdb.set_跟踪()

2024-09-29 21:20:36 发布

您现在位置:Python中文网/ 问答频道 /正文

在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中止执行。这不是关于如何重组上面的代码,使其工作!在


Tags: 代码import脚本linuxasshelldosomething
2条回答

我发现ctrl-z挂起python/ipdb进程,然后用'kill%1'终止进程,效果很好,而且输入速度相当快(使用bash别名k='kill%1')。我不确定有没有更干净/更简单的东西。在

module docs

q(uit) Quit from the debugger. The program being executed is aborted.

具体来说,这将导致下一个被调用的调试器函数引发^{}异常。在

相关问题 更多 >

    热门问题