【问题标题】:Compare executed lines in two python files [duplicate]比较两个python文件中的执行行[重复]
【发布时间】:2021-06-18 15:31:11
【问题描述】:

情况如下:我有一个 python 程序在我做一些不应该崩溃的事情时崩溃。我想自己调试它,所以我不是在寻求它为什么崩溃的帮助,而是我如何按我想要的方式调试它。

我想比较哪些行在工作时按什么顺序执行,而我什么时候做不工作。

我找到了trace module,您可以像这样使用它:

python -m trace -t program.py

它将“在执行时显示行”(打印它们)。但是,我正在制作的程序是 curses 中的开放世界游戏,因此输出变得非常奇怪,因为我的 curses 游戏已经使用了终端,我基本上无法使用它。

所以如果我想使用它,我必须以某种方式将输出写入文件。

如何让它写入文件,或者有其他方法吗?

【问题讨论】:

  • 我不知道trace模块,但是如果你没有找到解决方案,你可以尝试使用logging模块来调试你的程序。
  • 看来你的问题和这个很相似:stackoverflow.com/questions/4286693/….
  • @SpaceBurger 我知道日志记录模块,但我想要一个更详细的日志,因为我不知道是什么导致了错误
  • 可以理解。如果你还没有解决这个问题;上面的链接建议您修改trace 模块的代码。按照这个想法,您可以将trace 模块的print() 语句替换为对logging.debug() 的调用。 logging 模块允许您轻松地将消息写入文件,您需要先设置一个记录器或basicConfig,但这应该可以解决问题,而无需从头开始编写您自己的跟踪模块。
  • @SpaceBurger 花了一些时间,但我确实让它工作并给了我想要和需要的输出。需要调试调试器。但是它并没有帮助我解决问题

标签: python python-3.x


【解决方案1】:

我建议使用python logging library。这将为您提供更多控制权,因为您可以在任何需要的地方添加日志记录,包括变量值。您还可以将输出定向到 stderr(以及命令行重定向)或文件,以便将其与实际程序的 curses ui 分开。

【讨论】:

    猜你喜欢
    • 2014-08-24
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    • 1970-01-01
    相关资源
    最近更新 更多