【问题标题】:Debugging SCons调试 SCons
【发布时间】:2011-03-02 11:15:15
【问题描述】:

我写了一套相当复杂的 SCons 脚本,我有一些我找不到的错误,例如中间文件被删除或者报告了循环依赖,我想知道原因。不幸的是,我没有看到任何方法来获得关于 SCons 正在做什么以及在哪里进行的详细调试输出。例如,选项--taskmastertrace=FILE 没有解释我的中间文件被删除的原因。 (编辑:当然我可以使用Precious 保护它们,但是这些文件对于另一个目标需要并且构建失败——我只是不明白为什么它们被删除。我目前的解决方案包括Precious,但这并不是真正解决问题的方法)。

我想跟踪正在发生的一切,包括依赖项更改、文件创建和删除以及其他操作。有没有办法启用这种详细的日志记录?我目前对我的项目有点卡住了。

干杯, H.

【问题讨论】:

  • 为什么tree 选项不适合您:scons -nQ --tree=status yourfile
  • 不管什么原因,但是中间文件没有出现在树中。这是我想知道的事情之一。
  • 我同意你的观点,scons 的主要缺陷是能够调试东西。我和他们只会添加一个日志功能。

标签: python debugging trace scons circular-dependency


【解决方案1】:

好的,我已经解决了这个问题。原因似乎是目录滑入了目标列表,并且目录创建了自己的一组隐式依赖项。至少我是这么认为的,因为在删除目录后,脚本会按预期工作。谁能澄清我的假设是否正确?

我仍然不知道如何使用更多细节来调试 SCons,我的解决方案是将函数装饰器添加到 /usr/lib/scons/SCons/Node/FS.py 转储函数调用 + 参数和返回值。

【讨论】:

  • 我可以确认添加一个 Dir 作为目标会产生奇怪的效果。如果该目录已经存在,则依赖项通过并且不会发生构建。到目前为止,依赖目录中的实际文件要好得多。
猜你喜欢
  • 2011-01-14
  • 2014-05-14
  • 2011-06-23
  • 1970-01-01
  • 1970-01-01
  • 2010-11-07
  • 2011-03-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多