我有一個項目,我正在分析C++文件中的DWARF信息。我的系統對於簡單的C++文件運行良好,但是當我開始添加#includes時因爲#includes轉儲大量額外的(通常是不必要的)代碼而變得混亂。有沒有辦法告訴編譯器(g ++)不要爲標準庫生成調試信息?我會這樣認爲,因爲當你調試代碼時,IDE會說「源代碼不可用」。告知編譯器不爲標準庫生成調試信息。
0
A
回答
0
有沒有一種方法可以告訴編譯器(g ++)不生成標準庫的調試信息?
當你說「標準庫」,你可能意味着是STL,它有它的大部分代碼中的頭文件,並的,因爲這 STL代碼被納入你的計劃。
不,沒有辦法告訴GCC爲某些編譯器生成調試信息,但不是所有編譯的源代碼。
那麼調試信息有時僅在IDE中部分可用?
與STL,最其他圖書館代碼不在頭文件,你#include
,但在代替實際鏈接庫(即一組不同的翻譯單位,一起存檔到libfoo.a
,或鏈接在一起成爲libfoo.so
)。這些可鏈接的庫可以用不同的標誌進行編譯,並且經常在進行調試時進行優化編譯。
+0
由於STL代表*標準*模板*庫*,這是一個安全的假設...是。你確定你的答案?例如,如何在IDE中有時只有部分調試信息可用?從我的理解,因爲庫被編譯爲發佈版本,其中您的代碼被編譯爲調試版本。 –
+0
@ Dgrin91我已經更新了答案。 –
相關問題
- 1. 如何調試使用調試信息編譯的共享庫
- 2. 爲什麼一些java庫沒有調試信息編譯
- 3. 在編譯時生成信息文件
- 4. 用調試信息編譯OpenCL內核?
- 5. 是優化和生成編譯或鏈接的調試信息部分
- 6. 在Matlab中生成版本信息(Matlab編譯器)
- 7. 編譯器警告消息
- 8. 如何在Spring MVC中爲API調用生成度量標準/統計信息?
- 9. 編譯器錯誤信息
- 10. 在生成的類亞音速生成編譯器警告
- 11. 未爲接口生成Java調試信息
- 12. 成功編譯後,mingw編譯器不會生成exe文件
- 13. 調試信息中的相對路徑是否依賴於編譯器或生成文件?
- 14. JPA標準生成器
- 15. 標準報告生成語言
- 16. 學生信息系統編譯錯誤
- 17. 不同編譯器中的C++標準庫實現
- 18. 當我的「生成調試信息」設置爲「無」時,爲什麼VB.Net的Visual Studio 2010編譯器仍然在我的bin文件夾中生成pdb文件
- 19. 使用gwt生成編譯報告:compileReport
- 20. javax.tools編譯器生成JAR
- 21. 生成編譯器enum.ordinal
- 22. 如何不爲特定源文件/源代碼段生成調試信息?
- 23. 非標準簽名()編譯成功
- 24. 爲調試目的提取「關鍵」機器信息的庫?
- 25. GCC -I打破標準庫編譯
- 26. 標準x86_64庫中的編譯問題
- 27. 預編譯標準庫頭文件 - C++
- 28. 調試,信息
- 29. 調試信息
- 30. 調試信息
只要你用優化編譯,我認爲沒有調試信息是默認的 – Kal
@Kal - OP需要調試信息,但只限於'用戶'代碼,而不是庫。 –
@MichaelBurr正確。 –