我正在用STL C++ 0x容器(工具鏈是GCC 4.7.0)調試一些C++分析器。打印實例化鏈
而且由於STL重新綁定代碼是難以理解的,我需要以某種方式打印等typedef的實例化的完整鏈。當然,它只能解析爲T&
,但在它穿過__gnu_cxx
和其他內部中的至少7個不同模板之前。
因此,我期待類似打印模板錯誤的情況,但每個類都由編譯器實例化。 這可能嗎? GCC插件,也許...
UPD:好吧,我已經手動實例化所有需要的模板。看起來沒有什麼好的方法可以自動執行此操作,除了向GCC代碼本身插入一些調試printf語句外。
你嘗試STLFilt:?儘管最初開發的目的是幫助您處理模板實例化相關的錯誤(並且在'概念'之前 - 儘管它們還沒有作爲標準的一部分),但它可能只是值得您一段時間。我不認爲他們有C++ 11特定的變化,因爲活動開發停止了一段時間。否則,你需要編寫你自己的模板編譯器。 –
dirkgently
您是否從源代碼構建GCC?我似乎想起了很多調試轉儲選項,並且您可能能夠獲得每個模板實例化的狀態消息。不過,它可能會涉及繞過驅動程序。 – Potatoswatter