我們最近下載,安裝並編譯了gcc-3.0.4代碼。 gcc編譯器已經成功構建,我們可以編譯一些相同的測試cpp文件。我想知道,這樣我們增加額外的運行時間調試語句就像我的GCC編譯執行二進制應打印下面的語句在日誌文件中,我們可以如何修改gcc的源代碼:運行時調試
filename.cpp :: FunctionName#linenumber-statement
或我可以通過此定製編譯器代碼插入的任何其他信息。
我們最近下載,安裝並編譯了gcc-3.0.4代碼。 gcc編譯器已經成功構建,我們可以編譯一些相同的測試cpp文件。我想知道,這樣我們增加額外的運行時間調試語句就像我的GCC編譯執行二進制應打印下面的語句在日誌文件中,我們可以如何修改gcc的源代碼:運行時調試
filename.cpp :: FunctionName#linenumber-statement
或我可以通過此定製編譯器代碼插入的任何其他信息。
你看過宏__FILE__
和__LINE__
?他們爲你做這些而不修改編譯器。有關更多信息,請參閱here。我對GCC體系結構的一般理解是,它分爲前端(解析器),中間(在特殊中間語言中進行優化)和後端(生成平臺相關輸出)。所以,爲了您的目的,您必須查看後端部分。
GCC 3.0是一個非常舊的版本,3.x系列在很多方面都很差。你爲什麼不使用更新的東西?另外,如果使用-g標誌,編譯器已經插入了這類調試信息。 – 2010-03-30 10:12:20
@尼爾,我同意,但「很老」幾乎是輕描淡寫。根據http://gcc.gnu.org/news.html,3.0.4於2002年2月發佈。這不僅僅是古老的,古老的。 – Glen 2010-03-30 10:44:03
@Glen我仍然使用Win2K,所以把它稱爲古代會有點虛僞:-) – 2010-03-30 10:45:31