[英]Is -g the same as -g2 for gcc and clang?
GCC 調試選項文檔並不全面。 因此,嘗試使用不同的選項-g
、 -g1
、 -g2
、 -g3
編譯二進制文件,我得到了以下結果。
使用-g
和-g2
編譯時,二進制文件大小相同,均為13KB
。
使用-g1
編譯時,二進制文件的大小為9.3KB
使用-g3
編譯時,二進制文件大小為73KB
那么-g
是否等同於-g2
? 但是文檔中甚至沒有解釋級別 2。 這是文檔所說的(沒有 2 級):
0 級根本不產生調試信息。 因此,-g0 否定 -g。
級別 1 產生的信息最少,足以在您不打算調試的程序部分中進行回溯。 這包括函數和外部變量的描述,以及行號表,但沒有關於局部變量的信息。
第 3 級包括額外信息,例如程序中存在的所有宏定義。 當您使用 -g3 時,某些調試器支持宏擴展。
還是我錯過了什么?
那么
-g
是否等同於-g2
?
是的。
但是文檔中甚至沒有解釋級別 2。 [...] 還是我錯過了什么?
你錯過了一些東西。 您忽略了引用之前的句子:
默認級別為 2。
這意味着-g2
的含義與-g
相同。 (並且-ggdb2
與-ggdb
等的含義相同。)這部分地作為每個-g*2
選項對相應未編號-g*
選項的文檔的參考,您可以在其中找到相關文檔. 特別是, -g2
的文檔是-g
的文檔,它首先出現在本節中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.