使用pdb
调试curses应用程序时,交互式调试器无用,因为curses
会弄乱终端屏幕。虽然调试后验证工作,但这有点限制。
所以我们可能需要的是让调试器在调试对象(正在调试的应用程序)中与终端分开工作。
一些应用远程调试的替代方法(例如xpdb
)似乎不适用于python 3.3或出于其他原因而出现奇怪的错误。
那么如何在不同的终端或其他正确的方式中使用pdb
?
答案 0 :(得分:0)
使用一些调试器的功能来附加到正在运行的进程。例如,您可以尝试:
gdb python <pid>
请参阅Python Wiki DebuggingWithGdb。
是您要调试的进程的pid。还有WinPdb允许您连接到远程或本地进程。 WinPdb有很好的文档,我认为这是你最好的选择。
答案 1 :(得分:0)
我发现Python文档中的这些建议有助于:
调试curses应用程序时的一个常见问题是获取 当应用程序死亡而没有恢复时,终端搞砸了 终端到以前的状态。在Python中,这通常发生在 你的代码是错误的,并引发一个未被捕获的异常。钥匙不是 例如,当你输入它时,它会更长时间回显到屏幕上 使得使用shell变得困难。在Python中你可以避免这些 通过导入模块,复杂性和调试变得更加容易 curses.wrapper。它提供了一个包含...的wrapper()函数 调用。它执行上述初始化,以及 如果存在颜色支持,则初始化颜色。它然后运行你的 提供可调用并最终适当地取消初始化。该 在try-catch子句中调用callable来捕获异常, 执行curses deinitialization,然后传递异常 向上。因此,您的终端不会处于有趣的状态 异常。
请参阅here了解相关信息。