2013-04-01 110 views
0

任何人都可以告訴我,在gcc源代碼中的哪個函數負責在C文件中查找宏並使用實際值對其進行重新計算?海灣合作委員會源代碼中的函數

我想知道這個函數,因爲我必須對它進行更改才能記錄日誌,因此最後我的日誌文件將包含所有宏的使用位置和它的行號。

回答

0

它是由預處理器在生成輸出文件之前完成的。如果你想看到它在做什麼,儘量GCC-E

從人的gcc:

-E Stop after the preprocessing stage; do not run the compiler proper. 
    The output is in the form of preprocessed source code, which is sent to 
    the standard output. 
+0

感謝您的回覆。但我希望在gcc源代碼中找到並替換宏的確切功能。 – user2060958

+0

目前GCC在編譯器中嵌入了預處理器,它不再是一個單獨的程序。 – vonbrand

0

我建議使用clang這種類型的任務。它有很好的文檔記錄,您不需要更改其來源,因爲它可以通過插件系統進行擴展。

在你的情況下,你創建一個基於PPCallbacks類的插件並覆蓋它的MacroExpanded方法以及其他任何你認爲有用的方法。 This是一個簡單的起點。

相關問題