2014-02-25 52 views
0

我有一大組C源文件組成了一個相當完善的體系結構。現在我的任務是削減系統的一個重要部分,並將其替換爲存根。爲了估計工作,我希望找到所有在切割之後丟失的函數定義。有沒有一些好的和有效的方法來做到這一點?查找缺少的函數定義

我想,拿出三種方式

  1. 編譯其餘部分並捕獲鏈接錯誤。
  2. 對目標文件編譯並運行nm,並取{functions marked 'U'}{functions marked 'T'}之間的差值。
  3. 使用類似pycparser的東西來編寫一個捕獲未定義函數的工具。

有關如何完成的更好的建議?

+0

我可能會與(1)自己一起去。除非這是你將要重複做的事,否則不值得在工具開發和自動化方面進行巨大的投資。在像Eclipse這樣的IDE中,我只需刪除子系統,然後讓Eclipse告訴我剩下的代碼是在積極尋找什麼。 – keshlam

+0

我對Eclipse不是很熟悉,你是指「去掉子​​系統」是什麼意思? – Magnus

+0

「消除子系統」 - 抱歉,說「刪除不再需要的代碼」的奇特方式。我建議Eclipse只是因爲它提供了一個很好的整個項目中的錯誤消息的集中視圖,這可能使得通過「未找到」列表更快一些。 – keshlam

回答

0

查看ctags/etags或cscope等工具。特別是最後有助於導航大型代碼庫。

+0

這些確實是很好的導航工具,但它們如何幫助我找到聲明和使用但未定義的函數? – Magnus