簡體   English   中英

對於 gcc 和 clang,-g 是否與 -g2 相同?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM