デバッグシンボルについて

ほとんどのプログラムとライブラリは、デフォルトではデバッグシンボルを含んだ状態で( gcc オプション -g )コンパイルされます。

デバッグ情報を含んでコンパイルされたプログラムやライブラリをデバッグするとき、デバッガはメモリアドレスだけでなく、ルーチンや変数の名前も表示します。

しかしこれらのデバッグシンボルを含めることはプログラムやライブラリのサイズを著しく大きくします。これらのシンボルが占める量を知るために次を見て下さい。

これらのサイズは、どのコンパイラやどのライブラリが使われかたによって少し変わるかも知れません。 しかしデバッグシンボルを含むプログラムと含まないものを比べると、その違いは一般的に 2 倍から 5 倍になります。

恐らくほとんどの人はシステムソフトにデバッガを使うことは無いでしょうから、これらのシンボルを削除することで大量のディスクスペースを取り戻せます。

バイナリ(a.out か ELF バイナリでなければいけません)からデバッグシンボルを削除する、strip --strip-debug ファイル名 を実行します。 多くのファイルを扱うためにワイルドカード( strip --strip-debug $LFS/tools/bin/* といったように)が使えます。

便宜的に、第 9 章に、お使いのシステムにあるすべてのプログラムとライブラリから、すべてのデバッグシンボルを削除する簡単なコマンドを掲載しています。 最適化に関する追加情報は http://www.linuxfromscratch.org/hints/downloads/files/optimization.txt にあるヒントの中にあります。