调试SCons
我写了一套比较复杂的SCons脚本,但遇到了一些找不到的错误,比如中间文件被删除了,或者出现了循环依赖的问题,我想知道原因。可惜的是,我找不到什么好的方法来获取SCons在做什么以及在哪里出错的详细调试信息。例如,选项--taskmastertrace=FILE
并没有解释为什么我的中间文件会被删除。(补充说明:当然我可以用Precious
来保护这些文件,但这些文件是另一个目标所需要的,构建失败了——我就是不知道它们为什么会被删除。我现在的解决方案是用Precious
,但这并不能真正解决问题。)
我想要记录下所有发生的事情,包括依赖关系的变化、文件的创建和删除,以及其他操作。有没有办法开启这样的详细日志记录?我现在在项目上有点卡住了。
谢谢,
H.
1 个回答
1
好的,我解决了这个问题。看起来原因是一个文件夹意外地被加入到了目标列表中,而文件夹会自动产生一套隐含的依赖关系。至少我觉得是这样,因为在我把那个文件夹去掉后,脚本就正常工作了。有没有人能帮我确认一下我的想法是否正确?
我仍然不太清楚如何更详细地调试SCons,我的解决办法是在/usr/lib/scons/SCons/Node/FS.py
文件中添加了一些函数装饰器,这样可以打印出函数调用、参数和返回值。