名称
strip ― オブジェクトファイルからシンボル情報と行番号情報を削除
構文
strip [-l] [-x]
[-r] [-V] [-U] filename ...
説明
strip は、アーカイブを含むオブジェクトファイルからシンボルテーブルおよび行番号情報を削除します。それ以降、そのファイルに対してはデバッグのためのシンボルによるアクセスはできません。したがって、通常このコマンドは、デバッグおよびテストの済んだ製品モジュールにのみ実行してください。
効果は ld の -s オプションを使用することと大体同じです。
オプション
シンボルテーブルから削除する情報量は以下の任意のオプションを使って制御できます。
| -l | | 行番号情報のみを削除します。シンボルテーブル情報は削除しません。 |
| -x | | 静的シンボルまたは外部シンボル情報は削除しません。 シンボルテーブルは静的シンボルおよび外部シンボルのみを含んでいるため、 -l および -x オプションは同じ機能になります。どちらのオプションでも、シンボリックデバッギング情報およびロード不可能なデータのみを削除します。 |
| -r | | シンボルテーブルへ再配置インデックスをリセットします
(SOM のみ)。ELF ファイルに対しては廃止になりました。 このオプションは、 strip が再配置可能なファイルを対象として動作するようにします。その場合も、シンボリックデバッギング情報およびロード不可能なデータのみを削除することになります。 |
| -V | | strip コマンドのバージョンを標準エラー出力にプリントします。 |
| -U | | 使用法メニューをプリントします。 |
オブジェクトファイル内に再配置エントリーがあり、シンボルテーブル情報を削除する場合は、 strip は、 -r オプションを使用しないと、 filename を削除せずに警告を発行し、終了してしまいます。
strip をアーカイブファイルについて実行すると ar(4) を参照)、 アーカイブシンボルテーブルが削除されます。
アーカイブを ld コマンドで使用する前に、 ar に s 演算子 ( ar(1) を参照) を付けて実行し、アーカイブシンボルテーブルをリストアしなければなりません ( ld(1) を参照)。 strip は、いつこのような状況が起こるかを適切な警告メッセージによってユーザーに指示します。
このコマンドは、オブジェクトファイルによって消費されるファイル記憶のオーバーヘッドを減らす目的で使われます。
多言語化対応
環境変数
以下の多言語対応変数は、strip の処理内容に影響します。
| LANG | | LC_ALL および他の LC_* 環境変数が指定されていない場合に、
母国語のロケールカテゴリ、ローカルカスタム、およびコード文字 セットを定義します。LANG が指定されていない場合、または空文字列が指定されている場合、デフォルトの C (lang(5) を参照) が LANG の代わりに使用されます。 |
| LC_ALL | | すべてのロケールカテゴリの値を定義し、LANG および他の LC_* 環境変数よりも優先的に使用されます。 |
| LC_MESSAGES | | 標準エラーに書き込まれる診断メッセージのフォーマットおよび内容を変更
するために使用するロケールを定義します。 |
| LC_NUMERIC | | 数値フォーマティングのためのロケールカテゴリを定義します。 |
| LC_CTYPE | | 文字操作関数のローカルカテゴリを定義します。 |
| ST_STRIPCAT | | |
| NLSPATH | | LC_MESSAGES の処理を行うために、メッセージカタログの位置を定義します。 |
多言語対応変数のいずれかの設定が不適当な場合には、strip はすべての多言語対応変数が C に設定されているものとして動作します。environ(5) を参照してください。
さらに、以下の環境変数は strip の処理内容に影響します。
サポートされる国際的コードセット
シングル/マルチバイトの文字コードセットがサポートされています。
診断
| strip:name:cannot open |
| | | name を読み込むことができません。 |
| strip:name:bad magic |
| | | name は適切なオブジェクトファイルではありません。 |
| strip:name:relocation entries present ; cannot strip |
| | | name は再配置エントリーを含んでおり、削除できません。 -r オプションが指定されませんでした。
シンボルテーブル情報は削除することはできません。 |
例
カレントディレクトリにある共用ライブラリ libfoo.so のサイズを小さくするため、シンボルテーブルおよびデバッグ情報を削除します。
ライブラリを使用するために必要なシンボル情報は保存されます。
参照
システムツール:
| ar(1) | | アーカイブライブラリを作成 |
| as(1) | | アセンブリコードをマシンコードに変換 |
| cc(1) | | HP-UX C コンパイラを実行 |
| ld(1) | | リンクエディターを実行 |
その他:
| a.out(4) | | アセンブラ、コンパイラ、およびリンカーの出力 |
| ar(4) | | アーカイブ形式 |
標準準拠
strip: SVID2, SVID3, XPG2, XPG3, XPG4,
POSIX.2