我正在调用 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/