python - 同时使用调试器和 curses?

标签 python exception interpreter curses pdb

我正在调用 python -m pdb myapp.py,当异常触发时,我通常会返回到 pdb 解释器来调查问题。但是,在我通过 curses.wrapper() 调用并进入 curses 模式后抛出此异常,从而使 pdb 解释器无用。我该如何解决这个问题?

最佳答案

James 的回答很好,我投了赞成票,但我也会考虑尝试拆分程序的逻辑层和表示层。将 curses 部分保留在库之上的一个薄层,并编写一个简单的驱动程序来调用正确的例程来重现错误。然后你可以潜入并做必要的事情。

我能想到的另一种方法是创建一个名为 debug 的函数,或者让您回到常规屏幕并调用 pdb 的东西。然后将其粘贴在引发异常的代码之前并运行您的程序。有点像

def debug(stdscr):
    curses.nocbreak()
    stdscr.keypad(0)
    curses.echo()
    curses.endwin()
    import pdb; pdb.set_trace()

显然,这类似于使用 curses.wrapper 函数完成的操作。在 http://www.amk.ca/python/howto/curses/ 中简要提到了它.

关于python - 同时使用调试器和 curses?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2217109/

相关文章:

exception - Windows 7 上的 C++ Builder 中的语音 API (SAPI) 浮点除以零

python - python解释器如何在下面的代码中逐行运行代码?

python - 如何从 sitecustomize.py 获取脚本的名称/文件?

python - 来自 zope 模式的循环导入引用

java - 合理处理JSR223 Rhino抛出的ScriptException

php - 如何创建数学公式解释器

compiler-construction - 编译器、解释器和两者的例子

javascript - 你如何在 python 中使用 jsbeautifier 解压 javascript?

python - 绘制 pandas 数据框中出现的日期间隔的频率

java - scala mapreduce 异常 : java. lang.ClassNotFoundException : scala. Function2