debugging 调试urwid应用程序的好选项是什么?

pftdvrlh  于 2023-01-02  发布在  其他
关注(0)|答案(3)|浏览(158)

我目前的临时方法是记录到一个文本文件,但是交互性不是很好,我试过使用pdb,但是看起来不沿着urwid,pdb在遇到断点时不接受任何输入。

xa9qqrwz

xa9qqrwz1#

接下来的几个实践...调试urwid很奇怪,从传统的意义上说也不太可能,大多数时候在渲染画布之后,你不能再检查东西了。
帮助我的是:

  • 将错误路由到一个文件中。如果你遇到异常并且想了解异常是什么、在哪里以及如何发生的,这里给出了一个很好的实现:https://stackoverflow.com/a/12877023/5058041
  • 真正试着理解你的模块是什么,以及你想要如何实现事情。阅读X1 M0 N1 X-Time的文档是个好主意。
  • 看看你使用的小部件的实现,通常它们会有更多的信息。

我知道这算不上调试,但它在查找错误或奇怪行为方面帮助了我很多。

9wbgstp7

9wbgstp72#

我发现自己正在做的一件事就是添加一个文本小部件来显示调试消息。
我没有构建过很多复杂的应用程序(solitaire game是我用它编写的最大的应用程序),所以这种方法已经足够好了。
在某些特定情况下,您可能仍然可以使用PUDB--但由于它也使用了Urwid,它将窃取应用程序的输出。实际上,在您从应用程序转到pudb(可能是从添加到代码中的pudb.set_trace()断点)之后,您将无法返回应用程序。
对于更复杂的应用程序,构建一个“调试模式”可能会很有趣,或者你可以尝试使用remote pudb?还没有尝试过,但它看起来很有用。

33qvvth1

33qvvth13#

为了防止有人寻找更好的答案,我可以报告VSCode的Python调试器debugpy非常适合调试urwid应用程序(通常也适合调试Python)。您的调试器完全独立于控制台,不会干扰绘图。

相关问题