次: , 前: strings, 上: Top


8 strip

     
     strip [-F bfdname |--target=bfdname]
           [-I bfdname |--input-target=bfdname]
           [-O bfdname |--output-target=bfdname]
           [-s|--strip-all]
           [-S|-g|-d|--strip-debug]
           [-K symbolname |--keep-symbol=symbolname]
           [-N symbolname |--strip-symbol=symbolname]
           [-w|--wildcard]
           [-x|--discard-all] [-X |--discard-locals]
           [-R sectionname |--remove-section=sectionname]
           [-o file] [-p|--preserve-dates]
           [--only-keep-debug]
           [-v |--verbose] [-V|--version]
           [--help] [--info]
           objfile...
     

gnu stripは,オブジェクトファイルobjfileからシンボ ルをすべて廃棄します.オブジェクトファイルのリストには,アーカイブを含 めてもかまいません.少なくとも一つのオブジェクトファイルを与える必要が あります.

stripは,別の名前に編集されたものを書き出すのではなく,その引 数で指名されたファイルを変更します.

-F bfdname
--target=bfdname
オリジナルのobjfileを,オブジェクトコードのフォーマット bfdnameを用いたファイルとして扱い,同じフォーマットで再書き込みし ます.詳細は,See Target Selection.
--help
stripへのオプションの概要を表示し終了します.
--info
すべてのアーキテクチャと利用可能なオブジェクトフォーマットを示すリスト を表示します.
-I bfdname
--input-target=bfdname
オリジナルのobjfileを,オブジェクトコードのフォーマット bfdnameを用いたファイルとして扱います.詳細は,See Target Selection.
-O bfdname
--output-target=bfdname
objfileを,出力フォーマットbfdnameのファイルで置換します. 詳細は,See Target Selection.
-R sectionname
--remove-section=sectionname
sectionnameで指名されたすべてのセクションを,出力ファイルから削除 します.このオプションは一回以上与えてもかまいません.このオプションを 使用すると,不適切にも出力ファイルを利用不可能にする可能性があることに 注意してください.
-s
--strip-all
すべてのシンボルを削除します.
-g
-S
-d
--strip-debug
デバッグシンボルのみ削除します.
--strip-unneeded
再配置の処理に不要なすべてのシンボルを削除します.
-K symbolname
--keep-symbol=symbolname
シンボルsymbolnameのみ,ソースファイルに保存します.このオプショ ンは一回以上与えてもかまいません.
-N symbolname
--strip-symbol=symbolname
シンボルsymbolnameをソースファイルから削除します.このオプション は一回以上与えたり,-K以外のstripオプションと組み合 わせたりしてもかまいません.
-o file
既存のファイルを置換するのではなく,stripされた出力を fileに書き込みます.この引数が使用されたとき,一つの objfile引数のみ指定することが可能です.
-p
--preserve-dates
ファイルのアクセスと編集の日付を保持します.
-w
--wildcard
他のコマンドラインオプションで使用するため,symbolnameでの正規表 現を許可します.疑問符(?),アスタリスク(*),バックスラッシュ(\),そして 角括弧([])オペレータを,シンボル名の任意の場所に使用することが可能です. シンボル名の最初の文字が感嘆符(!)の場合,シンボルに対するスイッチの意味 を反対にします.例えば,以下を考えます.
            -w -W !foo -W fo*
     

これで,stripは,シンボル“foo”以外の,“fo”で始まるすべて のシンボルを保時します.

-x
--discard-all
グローバルでないシンボルを削除します.
-X
--discard-locals
コンパイラが生成したローカルシンボルを削除します.(これらは通常, `L'または`.'で始まります.)
--only-keep-debug
--strip-debugでstripされるセクションをすべて削除し,デバッグセ クションは残しながらファイルをstripします.

このオプションの目的は,二つの部分の実行形式を作成するために --add-gnu-debuglinkを組み合わせで使用します.一つは,RAMと配布 物にスペースが無い場合のstripされたバイナリで,二番目のデバッグ情報ファ イルは,デバッグ能力が要求される場合だけ必要になります.これらのファイ ルを作成するための推奨手順は以下の通りです.

  1. 通常の実行形式のリンク.fooと仮定します.
  2. デバッグ情報を含んでいるファイルを作成するためにobjcopy --only-keep-debug foo foo.dbgの実行.
  3. stripされた実行形式を作成するためにobjcopy --strip-debug fooの実 行.
  4. stripされた実行形式にデバッグ情報を追加リンクするためにobjcopy --add-gnu-debuglink=foo.dbg fooを実行.

注意 - デバッグ情報ファイルに対する拡張として,.dbgの選択は任意 です.また,--only-keep-debugの段階はオプションです.代わりに以 下のようにすることも可能です.

  1. 通常の実行形式のリンク.
  2. foofoo.fullへコピー.
  3. strip --strip-debug fooの実行.
  4. objcopy --add-gnu-debuglink=foo.full fooの実行.

つまり,--add-gnu-debuglinkで示されるファイルは,完全な実行形 式です.--only-keep-debugスイッチファイルを生成する必要はあり ません.

-V
--version
stripのバージョンナンバーを表示します.
-v
--verbose
冗長な出力です.編集されたすべてのオブジェクトファイルをリストアップし ます.アーカイブの場合,`strip -v'はアーカイブのすべてのメンバーを リストアップします.