リンカ・ローダと実行形式
実行ファイルにstripコマンドを使ったときに起こることとして正しいものはどれか。
- A機械語の命令が最適化されて、実行が速くなる
- B実行ファイルが暗号化され、ほかの人が実行できなくなる
- Cシンボル表やデバッグ情報が取り除かれ、ファイルは小さくなるが、デバッガで関数名などが見えにくくなる
答えと解説を見る
正解:C. シンボル表やデバッグ情報が取り除かれ、ファイルは小さくなるが、デバッガで関数名などが見えにくくなる
実行ファイルには、関数や変数の名前を並べたシンボル表や、ソースコードの行との対応を表すデバッグ情報が含まれることがあります。これらは実行には不要なので、stripで取り除くとファイルが小さくなります。ただし不具合の調査で関数名や行番号を見られなくなるので、取り除く前の情報を別に保管しておくこともあります。動的リンクに必要なシンボルは残ります。
- A. 命令は変わらないので、速さも変わりません。
- B. 暗号化はしません。
- C. 正しい。実行に必要ない情報を削ります。