2017-02-25 39 views
-7

「gcc -g3」でコンパイルされたオープンソースコードを見たことがあります。「g」の後に数字を追加するとどういう意味ですか? "g3"の先進機能は "g"と比べて何ですか? -gに関するマニュアルから'gcc -g'と 'gcc -g3'の違いは何ですか?

+2

gccのドキュメントをお読みになりましたか? –

+0

'man gcc'はあなたの友人です。少しの努力を示す。 –

答えて

4

documentationによると:デバッグ情報を

-glevel 

要求し、またどのように多くの情報を指定するためにレベルを使用しています。デフォルトのレベルは2

ここでレベル3の手段である。

レベル3のようなプログラム中に存在する全てのマクロ定義のような追加情報を含みます。一部のデバッガでは、-g3を使用するとマクロ展開がサポートされます。

3

レベル0は、すべてのデバッグ情報を生成しません。したがって、-g0は-gを否定します。

レベル1は、デバッグを予定していないプログラムのバックトレースを作成するのに十分な最小限の情報を生成します。これには、関数と外部変数の説明が含まれますが、ローカル変数と行番号に関する情報はありません。

レベル3には、プログラムに存在するすべてのマクロ定義などの追加情報が含まれています。一部のデバッガでは、-g3を使用するとマクロ展開がサポートされます。