2011-03-02 46 views
2

我已經寫了一組相當複雜的SCons腳本,並且我找到了一些我找不到的錯誤,例如中間文件被刪除或有循環依賴關係報告,我想知道原因。不幸的是,我沒有看到任何方法來獲得SCons在做什麼和在哪裏進行詳細的調試輸出。例如,選項--taskmastertrace=FILE不能解釋爲什麼我的中間文件已被刪除。 (編輯:當然,我可以使用Precious保護它們,但這些文件是需要另一個目標和構建失敗 - 我只是不明白爲什麼他們被刪除。我目前的解決方案涉及Precious,但它不是一個真正的解決問題)。調試SCons

我想了解一切正在進行的情況,包括依賴性更改,文件創建和刪除以及其他操作。有什麼辦法可以啓用這種詳細的日誌記錄嗎?目前我有點卡住了我的項目。

乾杯, H.

+0

爲什麼沒有[tree](http://www.scons.org/doc/0.98.5/HTML/scons-user/x3520.html)選項適用於您:'scons -nQ --tree =狀態yourfile'。 – 2011-03-02 12:38:19

+0

無論什麼原因,但中間文件不會出現在樹中。這是我想知道的事情之一。 – hochl 2011-03-02 14:50:37

+0

我同意你的觀點,scons的主要缺陷是能夠調試東西。我與他們只會添加日誌記錄功能。 – Nick 2017-04-26 21:25:11

回答

1

好吧,我已經解決了這個問題。看起來原因是一個目錄滑入目標列表,並且目錄創建它們自己的一組隱式依賴關係。至少這是我的想法,因爲在刪除目錄後腳本按預期工作。任何人都可以澄清,如果我的假設是正確的?

我仍然不知道如何調試SCons更多的細節,我的解決方案是添加函數修飾器到/usr/lib/scons/SCons/Node/FS.py轉儲函數調用+參數和返回值。

+2

我可以確認添加一個Dir作爲目標會產生奇怪的效果。如果該目錄已經存在,則依賴關係會通過,並且不會發生構建。迄今爲止依賴目錄中的實際文件更好。 – 2011-11-08 20:45:58