File:  [Local Repository] / gnujdoc / binutils-2.10.1 / binutils-ja.texi
Revision 1.1: download - view: text, annotated - select for diffs
Thu May 10 09:58:57 2001 UTC (19 years, 5 months ago) by futoshi
Branches: MAIN
CVS tags: HEAD
Add binutils-2.10.1. But binutils-ja.texi only.

    1: \input texinfo       @c                    -*- Texinfo -*-
    2: @setfilename binutils-ja.info
    3: @include config-ja.texi
    4: 
    5: @c @documentlanguage ja
    6: 
    7: @ifinfo
    8: @format
    9: START-INFO-DIR-ENTRY
   10: * Binutils(ja): (binutils-ja).           The GNU binary utilities.
   11: * ar(ja): (binutils-ja)ar.               Create, modify, and extract from archives
   12: * nm(ja): (binutils-ja)nm.               List symbols from object files
   13: * objcopy(ja): (binutils-ja)objcopy.     Copy and translate object files
   14: * objdump(ja): (binutils-ja)objdump.     Display information from object files
   15: * ranlib(ja): (binutils-ja)ranlib.       Generate index to archive contents
   16: * readelf(ja): (binutils-ja)readelf.     Display the contents of ELF format files.
   17: * size(ja): (binutils-ja)size.           List section sizes and total size
   18: * strings(ja): (binutils-ja)strings.     List printable strings from files
   19: * strip(ja): (binutils-ja)strip.         Discard symbols
   20: * c++filt(ja): (binutils-ja)c++filt.     Filter to demangle encoded C++ symbols
   21: * cxxfilt(ja): (binutils-ja)c++filt.     MS-DOS name for c++filt
   22: * addr2line(ja): (binutils-ja)addr2line. Convert addresses to file and line
   23: * nlmconv(ja): (binutils-ja)nlmconv.     Converts object code into an NLM
   24: * windres(ja): (binutils-ja)windres.     Manipulate Windows resources
   25: * dlltool(ja): (binutils-ja)dlltool.     Create files needed to build and use DLLs
   26: END-INFO-DIR-ENTRY
   27: @end format
   28: @end ifinfo
   29: 
   30: @ifinfo
   31: Copyright @copyright{} 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000 Free Software Foundation, Inc.
   32: 
   33: Permission is granted to make and distribute verbatim copies of
   34: this manual provided the copyright notice and this permission notice
   35: are preserved on all copies.
   36: 
   37: @ignore
   38: Permission is granted to process this file through TeX and print the
   39: results, provided the printed document carries a copying permission
   40: notice identical to this one except for the removal of this paragraph
   41: (this paragraph not being relevant to the printed manual).
   42: 
   43: @end ignore
   44: 
   45: Permission is granted to copy and distribute modified versions of this
   46: manual under the conditions for verbatim copying, provided also that
   47: the entire resulting derived work is distributed under the terms of a
   48: permission notice identical to this one.
   49: 
   50: Permission is granted to copy and distribute translations of this manual
   51: into another language, under the above conditions for modified versions.
   52: @end ifinfo
   53: 
   54: @synindex ky cp
   55: @c
   56: @c This file documents the GNU binary utilities "ar", "ld", "objcopy",
   57: @c  "objdump", "nm", "size", "strings", "strip", "readelf" and "ranlib".
   58: @c
   59: @c Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000 Free Software Foundation, Inc.
   60: @c 
   61: @c This text may be freely distributed under the terms of the GNU
   62: @c General Public License.
   63: @c
   64: 
   65: @c @setchapternewpage odd
   66: @settitle @sc{gnu} Binary Utilities
   67: @titlepage
   68: @finalout
   69: @title The @sc{gnu} Binary Utilities
   70: @subtitle Version @value{VERSION}
   71: @sp 1
   72: @subtitle May 1993
   73: @author Roland H. Pesch
   74: @author Jeffrey M. Osier
   75: @author Cygnus Support
   76: @c 翻訳 西尾 太
   77: @page
   78: 
   79: @tex
   80: {\parskip=0pt \hfill Cygnus Support\par \hfill
   81: \TeX{}info \texinfoversion\par }
   82: @end tex
   83: 
   84: @vskip 0pt plus 1filll
   85: Copyright @copyright{} 1991, 92, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
   86: 
   87: Permission is granted to make and distribute verbatim copies of
   88: this manual provided the copyright notice and this permission notice
   89: are preserved on all copies.
   90: 
   91: Permission is granted to copy and distribute modified versions of this
   92: manual under the conditions for verbatim copying, provided also that
   93: the entire resulting derived work is distributed under the terms of a
   94: permission notice identical to this one.
   95: 
   96: Permission is granted to copy and distribute translations of this manual
   97: into another language, under the above conditions for modified versions.
   98: @end titlepage
   99: 
  100: @node Top
  101: @top はじめに
  102: 
  103: @cindex version
  104: この短いマニュアルは,@sc{gnu}バイナリユーティリティ(全体でバージョン
  105: @value{VERSION})に対する予備的な文章を含みます.
  106: 
  107: @iftex
  108: @table @code
  109: @item ar
  110: アーカイバの作成,編集,そしてそれからの抽出.
  111: 
  112: @item nm
  113: オブジェクトファイルからシンボルをリストアップ.
  114: 
  115: @item objcopy
  116: オブジェクトファイルのコピーと変換.
  117: 
  118: @item objdump
  119: オブジェクトファイルから情報を表示.
  120: 
  121: @item ranlib
  122: アーカイブの内容に索引を生成.
  123: 
  124: @item readelf
  125: ELFフォーマットファイルの内容を表示.
  126: 
  127: @item size
  128: ファイルのセクションの大きさと全体の大きさをリストアップ.
  129: 
  130: @item strings
  131: ファイルから,出力可能な文字列をリストアップ.
  132: 
  133: @item strip
  134: シンボルの削除.
  135: 
  136: @item c++filt
  137: 符号化されたC++シンボルをdemangleする(MS-DOSでは,このプログラムは
  138: @code{cxxfilt}と命名されている).
  139: 
  140: @item addr2line
  141: アドレスをファイル名と行番号に変換.
  142: 
  143: @item nlmconv
  144: オブジェクトコードをNetware Loadable Moduleに変換.
  145: 
  146: @item windres
  147: Windowsリソースを操作.
  148: 
  149: @item dlltool
  150: ダイナミックリンクライブラリを構築し使用するために必要なファイルを作成.
  151: @end table
  152: @end iftex
  153: 
  154: @menu
  155: * ar::                          Create, modify, and extract from archives
  156: * nm::                          List symbols from object files
  157: * objcopy::			Copy and translate object files
  158: * objdump::                     Display information from object files
  159: * ranlib::                      Generate index to archive contents
  160: * readelf::			Display the contents of ELF format files.
  161: * size::                        List section sizes and total size
  162: * strings::                     List printable strings from files
  163: * strip::                       Discard symbols
  164: * c++filt::			Filter to demangle encoded C++ symbols
  165: * cxxfilt: c++filt.             MS-DOS name for c++filt
  166: * addr2line::			Convert addresses to file and line
  167: * nlmconv::                     Converts object code into an NLM
  168: * windres::			Manipulate Windows resources
  169: * dlltool::			Create files needed to build and use DLLs
  170: * Selecting The Target System:: How these utilities determine the target.
  171: * Reporting Bugs::              Reporting Bugs
  172: * Index::                       Index
  173: @end menu
  174: 
  175: @node ar
  176: @chapter ar
  177: 
  178: @kindex ar
  179: @cindex archives
  180: @cindex collections of files
  181: @smallexample
  182: ar [-]@var{p}[@var{mod} [@var{relpos}] [@var{count}]] @var{archive} [@var{member}@dots{}]
  183: ar -M [ <mri-script ]
  184: @end smallexample
  185: 
  186: @sc{gnu} @code{ar}は,アーカイブの作成,変更,そして,それからの抽出を行
  187: います.@dfn{アーカイブ}とは,(アーカイブの@dfn{メンバー}と呼ばれる)元と
  188: なる個々のファイルを取り出すことを可能にする構造で,他のファイルの集合を
  189: 保持している単一のファイルです.
  190: 
  191: 元のファイルの内容,モード(許可),タイムスタンプ,所有者,そしてグループ
  192: は,アーカイブに保存されていて,抽出時に復元可能です.
  193: 
  194: @cindex name length
  195: @sc{gnu} @code{ar}は,あらゆる長さのメンバー名のアーカイブを管理可能です.
  196: しかし,@code{ar}がシステムでコンフィグレーションされた方法に依存し,他
  197: のツールで管理されるアーカイブのフォーマットの互換性のため,メンバー名の
  198: 長さは制限される可能性があります.それが存在する場合,制限は15文字(a.out
  199: に関連するフォーマットの典型)や16文字(coffに関連するフォーマットの典型)
  200: のことが多いでしょう・
  201: 
  202: @cindex libraries
  203: この種のアーカイブは,一般に必要なサブルーチンを保持する@dfn{ライブラリ} 
  204: として最もよく使用されるので,@code{ar}は,バイナリユーティリティと考え
  205: られます.
  206: 
  207: @cindex symbol index
  208: @code{ar}は,修飾子@samp{s}を指定したとき,アーカイブの再配置可能なオブ
  209: ジェクトモジュールで定義されているシンボルに索引を作成します.一度作成さ
  210: れると,この索引は,(@samp{q}更新コマンドのための保存で)@code{ar}がその
  211: 内容を変更したときはいつも,アーカイブ内で更新します.そのような索引をも
  212: つアーカイブは,ライブラリとのリンク速度を上げ,ライブラリのルーチンがアー
  213: カイブ内の位置に関わらず,お互いの呼び出しを可能にします.
  214: 
  215: この索引表をリストアップするため,@samp{nm -s}や@samp{nm --print-armap} 
  216: が使用可能です.アーカイブに表がない場合,@code{ranlib}と呼ばれる
  217: @code{ar}の別の形式が,表を加えるために使用可能です.
  218: 
  219: @cindex compatibility, @code{ar}
  220: @cindex @code{ar} compatibility
  221: @sc{gnu} @code{ar}は,2つの異なる機能と互換性があるように設計されていま
  222: す.Unixシステム上の異なる形態の@code{ar}のように,コマンドラインオプショ
  223: ンを使用してその作業を制御可能です.また,単一のコマンドラインオプション
  224: @samp{-M}を指定した場合,MRI ``librarian''プログラムのように,標準入力を
  225: 通じて供給されるスクリプトを用いて,それを制御可能です.
  226: 
  227: @menu
  228: * ar cmdline::                  Controlling @code{ar} on the command line
  229: * ar scripts::                  Controlling @code{ar} with a script
  230: @end menu
  231: 
  232: @page
  233: @node ar cmdline
  234: @section コマンドラインでの@code{ar}の制御
  235: 
  236: @smallexample
  237: ar [-]@var{p}[@var{mod} [@var{relpos}] [@var{count}]] @var{archive} [@var{member}@dots{}]
  238: @end smallexample
  239: 
  240: @cindex Unix compatibility, @code{ar}
  241: Unix形式で@code{ar}を使用するとき,@code{ar}は少なくとも2つの引数を実行
  242: 時に要求します.@emph{operation}を指定するキー文字(@emph{modifiers}を指
  243: 定するその他のキー文字がオプションで付きます)と,動作対象のアーカイブ名
  244: です.
  245: 
  246: ほとんどの処理は,それ以外に@var{member}引数を受け入れ,それは処理の対象
  247: となる特定のファイル名を指定します.
  248: 
  249: @sc{gnu} @code{ar}では,最初のコマンドライン引数内で,処理コード@var{p} 
  250: と修飾フラグ@var{mod}を,あらゆる順序で混合させることが可能です.
  251: 
  252: 希望があれば,最初のコマンドライン引数をダッシュで始めることも可能です.
  253: 
  254: @cindex operations on archive
  255: @var{p}キー文字は,実行する処理を指定します.それは以下のいずれでも可能
  256: ですが,その中の1つだけを指定する必要があります.
  257: 
  258: @table @code
  259: @item d
  260: @cindex deleting from archive
  261: アーカイブからモジュールを@emph{削除}します.削除するモジュール名は,
  262: @var{member}@dots{}として指定してください.削除するファイルを指定してい
  263: ない場合,アーカイブはそのままです.
  264: 
  265: @samp{v}修飾子を指定した場合,@code{ar}は削除するそれぞれのモジュールを
  266: リストアップします.
  267: 
  268: @item m
  269: @cindex moving in archive
  270: アーカイブ内でメンバーを@emph{移動}するためにこの処理を使用してください.
  271: 
  272: シンボルが1つ以上のメンバーで定義されている場合,アーカイブ内のメンバー
  273: の順序で,プログラムがライブラリを使用してリンクされる方法に差異が発生す
  274: るはずです.
  275: 
  276: @code{m}とともに修飾子を使用しない場合,@var{member}引数で指名したあらゆ
  277: るメンバーは,アーカイブの@emph{終り}に移動されます.そうする代わりに,
  278: 指定した位置にそれらを移動するために,@samp{a},@samp{b},または@samp{i} 
  279: 修飾子が使用可能です.
  280: 
  281: @item p
  282: @cindex printing from archive
  283: アーカイブの指定されたメンバーを標準出力ファイルに@emph{出力}します.
  284: @samp{v}修飾子が指定された場合,その内容のコピーの前にメンバー名を標準出
  285: 力に表示します.
  286: 
  287: @var{member}引数を指定していない場合,アーカイブのすべてのファイルが出力
  288: されます.
  289: 
  290: @item q
  291: @cindex quick append to archive
  292: @emph{すばやく追加}します.歴史的に,ファイル@var{member}@dots{}を
  293: @var{archive}の終りに,置換についての調査をせずに加えます.
  294: 
  295: 修飾子@samp{a},@samp{b},そして@samp{i}は,このオプションに効果は
  296: @emph{ありません}.新しいメンバーは常にアーカイブの終りに位置します.
  297: 
  298: 修飾子@samp{v}で,@code{ar}は追加されるそれぞれのファイルをリストアップ
  299: します.
  300: 
  301: このオペレーションの要点は速度なので,アーカイブのシンボル表の索引が存在
  302: している場合でも更新されません.シンボル表の索引を更新するために,
  303: @samp{ar s}または@code{ranlib}を明示的に使用することが可能です.
  304: 
  305: しかし,異なるシステムによっては,高速追加が索引を再構築するを考えるもの
  306: が多すぎるので,@sc{gnu} @code{ar}は,@code{q}を@code{r}の同義語として実
  307: 装されています.
  308: 
  309: @item r
  310: @cindex replacement in archive
  311: ファイル@var{member}@dots{}を@var{archive}に挿入します(@emph{置換}を用い
  312: ます).この処理は,加えられるものと名前が一致した場合,既存のメンバーが
  313: 削除される点で,@samp{q}と異なります.
  314: 
  315: @var{member}@dots{}で指名されたファイルが1つでも存在しない場合,
  316: @code{ar}はエラーメッセージを表示し,名前がアーカイブと一致する既存のメ
  317: ンバーはそのままになります.
  318: 
  319: デフォルトで,新しいメンバーはファイルの終りに追加されます.しかし,既存
  320: のメンバーとの相対位置を要求するため,修飾子@samp{a},@samp{b},または
  321: @samp{i}の1つを使用可能です.
  322: 
  323: この処理での修飾子@samp{v}の使用は,挿入されたそれぞれのファイルを出力の
  324: 1 行に書き出し,ファイルが追加された(古いメンバーが削除されていない)のか,
  325: 置換されたのかを示す文字@samp{a}または@samp{r}のどちらかを追加します.
  326: 
  327: @item t
  328: @cindex contents of archive
  329: @var{archive}の内容をリストしている,または,アーカイブに存在する
  330: @var{member}@dots{}にリストアップされているファイルの@emph{表}を表示しま
  331: す.通常,メンバー名のみ見えます.モード(許可),タイムスタンプ,所有者,
  332: そして大きさも見たい場合,@samp{v}修飾子も指定することで要求可能です.
  333: 
  334: @var{member}を指定しない場合は,アーカイブ内のすべてのファイルがリストアッ
  335: プされます.
  336: 
  337: @cindex repeated names in archive
  338: @cindex name duplication in archive
  339: 同じ名前の(@samp{fie}という名の)ファイルが,(@samp{b.a}をいう名の)アーカ
  340: イブに1つ以上ある場合,@samp{ar t b.a fie}は最初のインスタンスのみリスト
  341: アップします.すべてを見るために,完全なリストを請求する必要があります---
  342: この例では@samp{ar t b.a}です.
  343: @c WRS only; per Gumby, this is implementation-dependent, and in a more
  344: @c recent case in fact works the other way.
  345: 
  346: @item x
  347: @cindex extract from archive
  348: (@var{member}という名の)メンバーをアーカイブから@emph{抽出}します.
  349: @code{ar}が抽出しているそれぞれの名前をリストアップするように,この処理
  350: で@samp{v}修飾子を使用することが可能です.
  351: 
  352: @var{member}を指定しない場合,アーカイブのすべてのファイルが抽出されます.
  353: @end table
  354: 
  355: 処理の動作の変更を指定するため,いくつかの修飾子(@var{mod})を@var{p}キー
  356: 文字の直後に続けることが可能です.
  357: 
  358: @table @code
  359: @item a
  360: @cindex relative placement in archive
  361: 新しいファイルを,アーカイブの既存のメンバーの@emph{後}に追加します.修
  362: 飾子@samp{a}を使用した場合,@var{archive}指定の前に,既存のアーカイブメ
  363: ンバー名を@var{relpos}引数におく必要があります.
  364: 
  365: @item b
  366: 新しいファイルをアーカイブの既存のメンバーの@emph{前}に加えます.修飾子
  367: @samp{b}を使用した場合,@var{archive}指定の前に,既存のアーカイブメンバー
  368: 名を@var{relpos}引数におく必要があります.(@samp{i}と同じです).
  369: 
  370: @item c
  371: @cindex creating archives
  372: アーカイブを@emph{作成}します.更新の要求をしたとき,指定された
  373: @var{archive}は,存在する場合でも常に作成されます.しかし,この修飾子を
  374: 使用して,作成することを期待するということを前もって指定しない場合,警告
  375: が生じます.
  376: 
  377: @item f
  378: アーカイブで名前を切り詰めます.@sc{gnu} @code{ar}は,通常あらゆる長さの
  379: ファイル名を許可します.これは,いくつかのシステムのネイティブ@code{ar} 
  380: プログラムと互換性のないアーカイブを作成させます.これが懸念される場合,
  381: アーカイブに配置するときファイル名を切り詰めるために,@samp{f}修飾子を使
  382: 用することが可能です.
  383: 
  384: @item i
  385: 新しいファイルをアーカイブの既存のメンバーの@emph{前に}挿入します.修飾
  386: 子@samp{i}を使用する場合,既存のアーカイブメンバの名前は,@var{relpos}引
  387: 数として,@var{archive}指定の前におく必要があります.(@samp{b}と同じです).
  388: 
  389: @item l
  390: この修飾子は受け入れられますが,使用されません.
  391: @c whaffor ar l modifier??? presumably compat; with
  392: @c what???---doc@@cygnus.com, 25jan91 
  393: 
  394: @item N
  395: @var{count}パラメータを使用します.これは,同じ名前のアーカイブに複数の
  396: 項目がある場合使用されます.アーカイブから与えられた名前の,インスタンス
  397: の@var{count}を抽出または削除します.
  398: 
  399: @item o
  400: @cindex dates in archive
  401: メンバーが既存のとき,その@emph{オリジナルの}日付を保持します.この修飾
  402: 子を指定しない場合,アーカイブから抽出されるファイルは,抽出した時間でタ
  403: イムスタンプがつきます.
  404: 
  405: @item P
  406: アーカイブの名前の一致にフルパス名を使用します.@sc{gnu} @code{ar}はフル
  407: パス名を持つアーカイブ(そのようなアーカイブは,POSIXで問題ない)を作成で
  408: きませんが,他のアーカイブを作成するものは可能です.このオプションで,
  409: @sc{gnu} @code{ar}は完全なパス名を使用しているファイル名に一致し,それで,
  410: 他のツールで作成されたアーカイブから単一のファイルを抽出するとき便利にな
  411: ります.
  412: 
  413: @item s
  414: @cindex writing archive index
  415: オブジェクトファイルの索引をアーカイブに書き出したり,他の変更がアーカイ
  416: ブに対してなされない場合でも,既存のものを更新したりします.この修飾子フ
  417: ラグは,あらゆるオプションとともに,または単独に使用可能です.アーカイブ
  418: で@samp{ar s}を実行することは,@samp{ranlib}の実行と等価です.
  419: 
  420: @item S
  421: @cindex not writing archive index
  422: アーカイブシンボル表を生成しません.これで何段階か使用する大きなライブラ
  423: リの構築を高速にできます.結果として出力されるアーカイブは,リンカで使用
  424: できません.シンボル表を構築するために,@samp{ar}の最後の実行で@samp{S} 
  425: 修飾子を省略したり,アーカイブで@samp{ranlib}を実行する必要があります.
  426: 
  427: @item u
  428: @cindex updating an archive
  429: 通常,@samp{ar r}@dots{}でリストアップされているすべてのファイルをアーカ
  430: イブに挿入します.同じ名前の既存のメンバーより新しいリストアップしたファ
  431: イル@emph{のみ}挿入したい場合,この修飾子を使用してください.@samp{u}修
  432: 飾子は,処理@samp{r}(置換)に対してのみ可能です.特に,タイムスタンプの調
  433: 査が処理@samp{q}での速度の利点を損なうため,@samp{qu}と組み合わせること
  434: はできません.
  435: 
  436: @item v
  437: この修飾子は,処理の@emph{冗長}バージョンを要求します.多くのオペレーショ
  438: ンは,修飾子@samp{v}が追加されているとき,処理しているファイル名のような
  439: 追加の情報を表示します.
  440: 
  441: @item V
  442: この修飾子は@code{ar}のバージョンナンバーを表示します.
  443: @end table
  444: 
  445: @node ar scripts
  446: @section スクリプトを用いた@code{ar}の制御
  447: 
  448: @smallexample
  449: ar -M [ <@var{script} ]
  450: @end smallexample
  451: 
  452: @cindex MRI compatibility, @code{ar}
  453: @cindex scripts, @code{ar}
  454: 単一のコマンドラインオプション@samp{-M}を@code{ar}で用いた場合,その処理
  455: を基礎となるコマンド言語でその処理を制御することが可能です.@code{ar}の
  456: この形式は,標準入力が端末から直接来ている場合,対話的に処理します.対話
  457: 的に使用している間,@code{ar}は入力を促し(プロンプトは@samp{AR >}),エラー
  458: 後も実行を続けます.標準入力をスクリプトファイルにリダイレクトしている場
  459: 合,プロンプトは発行されず,@code{ar}はあらゆるエラーが発生すると(ゼロで
  460: ない終了コードで)実行を終了します.
  461: 
  462: @code{ar}コマンド言語は,コマンドラインオプションと等価に設計されて
  463: @emph{いません}.実際,それはアーカイブ上の制御が幾分少なくなっています.
  464: コマンド言語の目的は,MRI ``librarian''プログラムに対して書かれたスクリ
  465: プトを既に所有している開発者が,@sc{gnu} @code{ar}の変換をより簡単にする
  466: ことです.
  467: 
  468: @code{ar}コマンド言語の構文は簡単です.
  469: 
  470: @itemize @bullet
  471: @item
  472: コマンドは大文字小文字を容認します.例えば,@code{LIST}は@code{list}と同
  473: じです.以下の記述では,明確さのためにコマンドは大文字で表示されます.
  474: 
  475: @item
  476: 単一のコマンドは,個別の行に配置することが可能です.それは,行の最初の単
  477: 語となります.
  478: 
  479: @item
  480: 空行が可能で,それは効果がありません.
  481: 
  482: @item
  483: コメントが可能です.文字@samp{*}または@samp{;}以降のテキストは無視されま
  484: す.
  485: 
  486: @item
  487: @code{ar}コマンドの引数の一部として名前のリストを使用するときは,カンマ
  488: または空白で,それぞれの名前を分けることが可能です.明確さのため,以下の
  489: 説明はカンマで表現されます.
  490: 
  491: @item
  492: 行の連結文字として@samp{+}が使用されます.@samp{+}が行末に現れた場合,そ
  493: れに続く行のテキストは,現在のコマンドの一部と考えられます.
  494: @end itemize
  495: 
  496: ここに,@code{ar}で使用可能な,または,@code{ar}を対話的に使用していると
  497: きのコマンドがあります.そのうちの3つは,特別な意味を持ちます.
  498: 
  499: @code{OPEN}や@code{CREATE}は@dfn{現在のアーカイバ}を指定し,それは,他の
  500: コマンドのほとんどで要求される一時ファイルになります.
  501: 
  502: @code{SAVE}は,スクリプトでこれまでに指定された変更をコミットします.
  503: @code{SAVE}の前のコマンドは,現在のアーカイブの一時的なコピーに対しての
  504: み効果があります.
  505: 
  506: @table @code
  507: @item ADDLIB @var{archive} 
  508: @itemx ADDLIB @var{archive} (@var{module}, @var{module}, @dots{} @var{module})
  509: @var{archive}のすべての内容(または,指定されている場合,アーカイブのそれ
  510: ぞれの指名された@var{module})を,現在のアーカイブに追加します.
  511: 
  512: @code{OPEN}や@code{CREATE}を前もって使用することが要求されます.
  513: 
  514: @item ADDMOD @var{member}, @var{member}, @dots{} @var{member}
  515: @c FIXME! w/Replacement??  If so, like "ar r @var{archive} @var{names}"
  516: @c        else like "ar q..."
  517: それぞれの指名された@var{member}を,モジュールとして,現在のアーカイブに
  518: 追加します.
  519: 
  520: @code{OPEN}や@code{CREATE}を前もって使用することが要求されます.
  521: 
  522: @item CLEAR
  523: 現在のアーカイブの内容を削除し,最後に@code{SAVE}されてからのあらゆる処
  524: 理の効果を無効にします.現在のアーカイブが指定されていない場合でも実行可
  525: 能です(効果はありません).
  526: 
  527: @item CREATE @var{archive}
  528: アーカイブを作成し,それを現在のアーカイブにします(その他,多くのコマン
  529: ドに対し必要です).新しいアーカイブは,一時的な名前で作成されます.それ
  530: は,@code{SAVE}を使用するまで,@var{archive}として実際に保存されません.
  531: 既存のアーカイブに優先可能です.同様に,指名されている既存の
  532: @var{archive}ファイルの内容は,@code{SAVE}まで破壊されません.
  533: 
  534: @item DELETE @var{module}, @var{module}, @dots{} @var{module}
  535: それぞれのリストアップされている@var{module}を,現在のアーカイブから削除
  536: します.@samp{ar -d @var{archive} @var{module} @dots{} @var{module}}と同
  537: じです.
  538: 
  539: @code{OPEN}や@code{CREATE}を前もって使用することが要求されます.
  540: 
  541: @item DIRECTORY @var{archive} (@var{module}, @dots{} @var{module})
  542: @itemx DIRECTORY @var{archive} (@var{module}, @dots{} @var{module}) @var{outputfile}
  543: それぞれ指名された@var{archive}に存在する@var{module}をリストアップしま
  544: す.分離されているコマンド@code{VERBOSE}は,出力形式を指定します.冗長
  545: 出力がオフのとき,出力は@samp{ar -t @var{archive} @var{module}@dots{}}の
  546: ようになります.冗長出力がオンのとき,リストは@samp{ar -tv @var{archive}
  547: @var{module}@dots{}}のようになります.
  548: 
  549: 出力は通常,標準出力に流れていきます.しかし,@var{outputfile}を最後の引
  550: 数として指定した場合,@code{ar}はそのファイルに出力を変更します.
  551: 
  552: @item END
  553: @code{ar}を,成功に完了したことを示す終了コード@code{0}で終了します.こ
  554: のコマンドは出力ファイルを保存しません.最後の@code{SAVE}コマンド以降に
  555: 現在のアーカイブを変更した場合.これらの変更は失われます.
  556: 
  557: @item EXTRACT @var{module}, @var{module}, @dots{} @var{module}
  558: それぞれ指名された@var{module}を,現在のアーカイブから抽出し,それらを現
  559: 在のディレクトリに個別のファイルとして書き出します.@samp{ar -x
  560: @var{archive} @var{module}@dots{}}と同じです.
  561: 
  562: @code{OPEN}や@code{CREATE}を前もって使用することが要求されます.
  563: 
  564: @ignore
  565: @c FIXME Tokens but no commands???
  566: @item FULLDIR
  567: 
  568: @item HELP
  569: @end ignore
  570: 
  571: @item LIST
  572: 現在のアーカイブのすべての内容を,@code{VERBOSE}の状態に関わらず,
  573: ``verbose''形式で表示します.効果は@samp{ar tv @var{archive}}に似ていま
  574: す.(この単独コマンドは@sc{gnu} @code{ar}拡張で,MRI互換に提供されている
  575: ものではありません).
  576: 
  577: @code{OPEN}や@code{CREATE}を前もって使用することが要求されます.
  578: 
  579: @item OPEN @var{archive}
  580: 現在のアーカイブとして使用するために既存のアーカイブを開きます(他の多く
  581: のコマンドに対し必要です).それに続くコマンドの結果からのあらゆる変更は,
  582: 次に@code{SAVE}が使用されるまで,@var{archive}に対し実際に効果はありませ
  583: ん.
  584: 
  585: @item REPLACE @var{module}, @var{module}, @dots{} @var{module}
  586: 現在のアーカイブで,それぞれの(@code{REPLACE}の引数で指名された)既存の
  587: @var{module}を,現在のワーキングディレクトリのファイルから置換します.エ
  588: ラー無くこのコマンドを実行するために,ファイルと現在のアーカイブのモジュー
  589: ルの両方が存在する必要があります.
  590: 
  591: @code{OPEN}や@code{CREATE}を前もって使用することが要求されます.
  592: 
  593: @item VERBOSE
  594: @code{DIRECTORY}からの出力を管理している内部フラグを切り替えます.フラグ
  595: がオンのとき,@code{DIRECTORY}出力は,@samp{ar -tv }@dots{}からの出力に
  596: 一致します.
  597: 
  598: @item SAVE
  599: 現在のアーカイブへの変更をコミットし,それを,最後の@code{CREATE}や
  600: @code{OPEN}コマンドで指定された名前のファイルに,実際に保存します.
  601: 
  602: @code{OPEN}や@code{CREATE}を前もって使用することが要求されます.
  603: @end table
  604: 
  605: 
  606: @iftex
  607: @node ld
  608: @chapter ld
  609: @cindex linker
  610: @kindex ld
  611: @sc{gnu}リンカ@code{ld}は,現在,別のマニュアルで記述されています.
  612: @xref{Top,, Overview,, Using LD: the @sc{gnu} linker}.
  613: @end iftex
  614: 
  615: @node nm
  616: @chapter nm
  617: @cindex symbols
  618: @kindex nm
  619: 
  620: @smallexample
  621: nm [ -a | --debug-syms ]  [ -g | --extern-only ]
  622:    [ -B ]  [ -C | --demangle ] [ -D | --dynamic ]
  623:    [ -s | --print-armap ]  [ -A | -o | --print-file-name ]
  624:    [ -n | -v | --numeric-sort ]  [ -p | --no-sort ]
  625:    [ -r | --reverse-sort ]  [ --size-sort ] [ -u | --undefined-only ]
  626:    [ -t @var{radix} | --radix=@var{radix} ] [ -P | --portability ]
  627:    [ --target=@var{bfdname} ] [ -f @var{format} | --format=@var{format} ]
  628:    [ --defined-only ] [-l | --line-numbers ]
  629:    [ --no-demangle ] [ -V | --version ]  [ --help ]  [ @var{objfile}@dots{} ]
  630: @end smallexample
  631: 
  632: @sc{gnu} @code{nm}は,オブジェクトファイル@var{objfile}@dots{}のシンボル
  633: をリストアップします.オブジェクトファイルが引数として与えられていない場
  634: 合,@code{nm}は,ファイル@code{a.out}と仮定します.
  635: 
  636: それぞれのシンボルに対し,@code{nm}は以下を表示します.
  637: 
  638: @itemize @bullet
  639: @item
  640: シンボル値で,オプションで指定されている基数(以下を参照),または,デフォ
  641: ルトの16進数です.
  642: 
  643: @item
  644: シンボル形式です.少なくとも以下の形式が使用されます.それ以外は,同様に
  645: オブジェクトファイルの書式に依存します.小文字の場合,シンボルはローカル
  646: です.大文字の場合,シンボルはグローバル(外部参照可能)です.
  647: 
  648: @c Some more detail on exactly what these symbol types are used for
  649: @c would be nice.
  650: @table @code
  651: @item A
  652: シンボルの値は絶対値で,更なるリンクで変更されません.
  653: 
  654: @item B
  655: シンボルは初期化されていないデータセクションにあります(BSSとして知られて
  656: います).
  657: 
  658: @item C
  659: シンボルは共通です.共通シンボルは初期化されていないデータです.リンク時,
  660: 複数の共通シンボルは,同じ名前で存在することが可能です.シンボルがどこか
  661: で定義されている場合,共通のシンボルは未定義の参照として扱われます.共通
  662: シンボルの詳細は,@ref{Options,,Linker options,ld.info,The GNU linker},
  663: の@samp{--warn-common}の記述を参照してください.
  664: 
  665: @item D
  666: シンボルは,初期化されているデータセクションにあります.
  667: 
  668: @item G
  669: シンボルは,小さいオブジェクトに対して初期化されているデータセクションに
  670: あります.いくつかのオブジェクトファイルの書式は,グローバルな配列に対す
  671: るグローバルな整数型変数のような,小さなデータオブジェクトに対するより効
  672: 果的なアクセスを可能とします.
  673: 
  674: @item I
  675: シンボルは他のシンボルへの間接参照です.これは,滅多に使用されないa.out
  676: オブジェクトファイル形式に対するGNU拡張です.
  677: 
  678: @item N
  679: シンボルはデバッグシンボルです.
  680: 
  681: @item R
  682: シンボルは読み込み専用データセクションにあります.
  683: 
  684: @item S
  685: シンボルは小さなオブジェクトに対する初期化されていないデータセクションに
  686: あります.
  687: 
  688: @item T
  689: シンボルはテキスト(code)セクションにあります.
  690: 
  691: @item U
  692: シンボルは定義されていません.
  693: 
  694: @item V
  695: シンボルは弱いオブジェクトです.定義されている弱いシンボルが,通常定義さ
  696: れているシンボルにリンクされるとき,通常の定義されているシンボルはエラー
  697: 無く使用されます.弱い未定義のシンボルがリンクされ,シンボルが定義されて
  698: いないとき,弱いシンボルの値はエラー無くゼロになります.
  699: 
  700: @item W
  701: シンボルは,弱いオブジェクトシンボルとして特殊なタグを持たない弱いシンボ
  702: ルです.定義されている弱いシンボルが,通常定義されているシンボルにリンク
  703: されるとき,通常定義されているシンボルはエラー無く使用されます.弱い未定
  704: 義のシンボルがリンクされ,シンボルが定義されていないとき,弱いシンボルの
  705: 値はエラー無くゼロになります.
  706: 
  707: @item -
  708: シンボルは,@code{a.out}オブジェクトファイルのスタブシンボルです.この場
  709: 合,次に出力される値は,スタブのその他のフィールド,スタブのdescフィール
  710: ド,そして,スタブの形式になります.スタブシンボルは,デバッグ情報を保つ
  711: ために使用されます.詳細は,@ref{Top,Stabs,Stabs Overview,stabs.info,
  712: The ``stabs'' debug format},を参照してください.
  713: 
  714: @item ?
  715: シンボル形式が分からない,または具体的な書式のオブジェクトファイルです.
  716: @end table
  717: 
  718: @item
  719: シンボル名.
  720: @end itemize
  721: 
  722: ここで交互に表示している,オプションの長い形式と短い形式は等価です.
  723: 
  724: @table @code
  725: @item -A
  726: @itemx -o
  727: @itemx --print-file-name 
  728: @cindex input file name
  729: @cindex file name
  730: @cindex source file name
  731: それぞれのシンボルに,入力ファイルを一度だけ識別できるようにするのではな
  732: く,それが見つかる入力ファイル(またはアーカイブメンバー)の名前をそのすべ
  733: てのシンボルの前に配置します.
  734: 
  735: @item -a
  736: @itemx --debug-syms 
  737: @cindex debugging symbols
  738: すべてのシンボルで,デバッグ専用のシンボルさえ表示します.通常はリストアッ
  739: プされません.
  740: 
  741: @item -B
  742: @cindex @code{nm} format
  743: @cindex @code{nm} compatibility
  744: (MIPS @code{nm}との互換性のための)@samp{--format=bsd}と同じです.
  745: 
  746: @item -C
  747: @itemx --demangle
  748: @cindex demangling in nm
  749: 低レベルのシンボル名をユーザレベルの名前に復号(@dfn{demangle})します.シ
  750: ステムが前置する,最初のあらゆるアンダースコアを削除する他,これはC++関
  751: 数名を読みやすくします.demangleの情報は,@xref{c++filt}.
  752: 
  753: @item --no-demangle
  754: 低レベルのシンボル名をdemangleしません.これはデフォルトです.
  755: 
  756: @item -D
  757: @itemx --dynamic
  758: @cindex dynamic symbols
  759: 通常のシンボルではなく,動的なシンボルを表示します.これは,共有ライブラ
  760: リの特定の形式のような,動的オブジェクトに対してのみ意味があります.
  761: 
  762: @item -f @var{format}
  763: @itemx --format=@var{format}
  764: @cindex @code{nm} format
  765: @cindex @code{nm} compatibility
  766: 出力書式@var{format}を使用し,それは,@code{bsd},@code{sysv},または
  767: @code{posix}が可能です.デフォルトは@code{bsd}です.@var{format}の最初の
  768: 文字のみ識別されます.それは大文字または小文字が可能です.
  769: 
  770: @item -g
  771: @itemx --extern-only 
  772: @cindex external symbols
  773: 外部シンボルのみ表示します.
  774: 
  775: @item -l
  776: @itemx --line-numbers
  777: @cindex symbol line numbers
  778: それぞれのシンボルに対し,ファイル名と行番号を見つけようとするため,デバッ
  779: グ情報を使用します.定義済シンボルに対し,シンボルのアドレスの行番号を探
  780: します.未定義のシンボルに対し,シンボルを参照するリロケーションエントリ
  781: の行番号を探します.行番号の情報が見つかる場合,それを他のシンボル情報の
  782: 後に出力します.
  783: 
  784: @item -n
  785: @itemx -v
  786: @itemx --numeric-sort 
  787: シンボルを,名前のアルファベット順ではなく,そのアドレスで数値的に並べ替
  788: えます.
  789: 
  790: @item -p
  791: @itemx --no-sort 
  792: @cindex sorting symbols
  793: シンボルの並べ替えを全く行いません.それらを見つかった順番で出力します.
  794: 
  795: @item -P
  796: @itemx --portability
  797: デフォルトの書式の代わりに,POSIX.2標準出力形式を使用します.@samp{-f
  798: posix}と同じです.
  799: 
  800: @item -s
  801: @itemx --print-armap
  802: @cindex symbol index, listing
  803: アーカイブメンバーからシンボルをリストアップするとき,索引を含めます.名
  804: 前に対する定義を含むモジュールの(@code{ar}や@code{ranlib}でアーカイブに
  805: 保存されている)マップです.
  806: 
  807: @item -r
  808: @itemx --reverse-sort 
  809: 並べ替えの順序を(数値的またはアルファベット順によらず)逆にします.最後の
  810: ものを最初にします.
  811: 
  812: @item --size-sort
  813: シンボルを大きさで並べ替えます.大きさは,そのシンボル値と,次に現れるよ
  814: り大きい値を持つシンボル値の差として計算されます.シンボル値ではなく,そ
  815: の大きさが出力されます.
  816: 
  817: @item -t @var{radix}
  818: @itemx --radix=@var{radix}
  819: @var{radix}をシンボル値を出力する基数として使用します.それは,10進数の
  820: @samp{d},8進数の@samp{o},または16進数の@samp{x}にする必要があります.
  821: 
  822: @item --target=@var{bfdname}
  823: @cindex object code format
  824: システムのデフォルト書式以外のオブジェクトコードを指定します.詳細は,
  825: @xref{Target Selection}.
  826: 
  827: @item -u
  828: @itemx --undefined-only 
  829: @cindex external symbols
  830: @cindex undefined symbols
  831: 未定義のシンボルのみ表示します(それらはそれぞれのオブジェクトファイルの
  832: 外部にあります).
  833: 
  834: @item --defined-only
  835: @cindex external symbols
  836: @cindex undefined symbols
  837: それぞれのオブジェクトファイルの定義済シンボルのみ表示します.
  838: 
  839: @item -V
  840: @itemx --version
  841: @code{nm}のバージョンナンバーを表示し終了します.
  842: 
  843: @item --help
  844: @code{nm}のオプションの概要を表示し終了します.
  845: @end table
  846: 
  847: 
  848: @node objcopy
  849: @chapter objcopy
  850: 
  851: @smallexample
  852: objcopy [ -F @var{bfdname} | --target=@var{bfdname} ]
  853:         [ -I @var{bfdname} | --input-target=@var{bfdname} ]
  854:         [ -O @var{bfdname} | --output-target=@var{bfdname} ]
  855:         [ -S | --strip-all ]  [ -g | --strip-debug ]
  856:         [ -K @var{symbolname} | --keep-symbol=@var{symbolname} ]
  857:         [ -N @var{symbolname} | --strip-symbol=@var{symbolname} ]
  858:         [ -L @var{symbolname} | --localize-symbol=@var{symbolname} ]
  859:         [ -W @var{symbolname} | --weaken-symbol=@var{symbolname} ]
  860:         [ -x | --discard-all ]  [ -X | --discard-locals ]
  861:         [ -b @var{byte} | --byte=@var{byte} ]
  862:         [ -i @var{interleave} | --interleave=@var{interleave} ]
  863:         [ -j @var{sectionname} | --only-section=@var{sectionname} ]
  864:         [ -R @var{sectionname} | --remove-section=@var{sectionname} ]
  865:         [ -p | --preserve-dates ] [ --debugging ]
  866:         [ --gap-fill=@var{val} ] [ --pad-to=@var{address} ]
  867:         [ --set-start=@var{val} ] [ --adjust-start=@var{incr} ]
  868:         [ --change-addresses=@var{incr} ]
  869:         [ --change-section-address @var{section}@{=,+,-@}@var{val} ]
  870:         [ --change-section-lma @var{section}@{=,+,-@}@var{val} ]
  871:         [ --change-section-vma @var{section}@{=,+,-@}@var{val} ]
  872:         [ --change-warnings ] [ --no-change-warnings ]
  873:         [ --set-section-flags @var{section}=@var{flags} ]
  874:         [ --add-section @var{sectionname}=@var{filename} ]
  875:         [ --change-leading-char ] [ --remove-leading-char ]
  876:         [ --redefine-sym @var{old}=@var{new} ] [ --weaken ]
  877:         [ -v | --verbose ] [ -V | --version ]  [ --help ]
  878:         @var{infile} [@var{outfile}]
  879: @end smallexample
  880: 
  881: @sc{gnu} @code{objcopy}ユーティリティは,オブジェクトファイルの内容を別
  882: のファイルにコピーします.@code{objcopy}はオブジェクトファイルの読み書き
  883: に@sc{gnu} @sc{bfd}を使用します.それは,目的のオブジェクトファイルに,
  884: 基となるスオブジェクトファイルと異なる書式で書き出すことが可能です.
  885: @code{objcopy}の正確な動作は,コマンドラインオプションで制御されます.
  886: 
  887: @code{objcopy}は,その変換を行うために一時ファイルを作成し,その後でそれ
  888: を削除します.@code{objcopy}は,そのすべての変換作業で@sc{bfd}を使用しま
  889: す.それは,@sc{bfd}で記述されているすべての書式にアクセスし,そのため,
  890: 明示的に告げること無く,ほとんどの書式を認識することが可能です.
  891: @xref{BFD,,BFD,ld.info,Using LD}.
  892: 
  893: @code{objcopy}は,@samp{srec}出力ターゲットを使用することで,S-recordを
  894: 生成するために使用可能です(例えば,@samp{-O srec}を使用してください).
  895: 
  896: @code{objcopy}は,@samp{binary}の出力ターゲットを使用することで,rawバイ
  897: ナリファイルを生成するために使用可能です(例えば,@samp{-O binary}を使用
  898: してください).@code{objcopy}がrawバイナリファイルを生成するとき,それは
  899: 本質的に,入力オブジェクトファイルの内容のメモリダンプを生成します.すべ
  900: てのシンボルとリロケーション情報は削除されます.メモリダンプは,出力ファ
  901: イルにコピーされる最抵位のセクションのロードアドレスから開始します.
  902: 
  903: S-recordやrawバイナリファイルを生成するとき,デバッグ情報を含むセクショ
  904: ンを削除するため,@samp{-S}を使用すると便利かもしれません.場合によって
  905: は,バイナリファイルに必要のない情報を含むセクションを削除するため,
  906: @samp{-R}が役に立つでしょう.
  907: 
  908: @table @code
  909: @item @var{infile}
  910: @itemx @var{outfile}
  911: それぞれ入力と出力のファイルです.@var{outfile}を指定しない場合,
  912: @code{objcopy}は結果的に破壊される一時ファイルを作成し,@var{infile}に名
  913: 前を変更します.
  914: 
  915: @item -I @var{bfdname}	
  916: @itemx --input-target=@var{bfdname}
  917: ソースファイルのオブジェクトの書式を,それを導き出すのではなく,
  918: @var{bfdname}と考えます.詳細は,@xref{Target Selection}.
  919: 
  920: @item -O @var{bfdname}
  921: @itemx --output-target=@var{bfdname}
  922: 出力ファイルを,オブジェクトファイルの書式@var{bfdname}を用いて書き出し
  923: ます.詳細は,@xref{Target Selection}.
  924: 
  925: @item -F @var{bfdname}
  926: @itemx --target=@var{bfdname}
  927: 入出力両方のファイルに対し,オブジェクトの書式として@var{bfdname}を使
  928: 用します.すなわち,単純にソースから目的物に,変換せずにデータを転送しま
  929: す.詳細は,@xref{Target Selection}.
  930: 
  931: @item -j @var{sectionname}
  932: @itemx --only-section=@var{sectionname}
  933: 指名されたセクションのみ,入力ファイルから出力ファイルへコピーします.こ
  934: のオプションは,1回以上与えることが可能です.このオプションを不適切に使
  935: 用すると,出力ファイルが使用不可能になることに注意してください.
  936: 
  937: @item -R @var{sectionname}
  938: @itemx --remove-section=@var{sectionname}
  939: 指名されている,あらゆる@var{sectionname}セクションを出力ファイルから削
  940: 除します.このオプションは,1回以上与えることが可能です.このオプション
  941: を不適切に使用すると,出力ファイルが使用不可能になることに注意してくださ
  942: い.
  943: 
  944: @item -S
  945: @itemx --strip-all
  946: リロケーションとシンボルの情報を,ソースファイルからコピーしません.
  947: 
  948: @item -g
  949: @itemx --strip-debug
  950: デバッグシンボルをソースファイルからコピーしません.
  951: 
  952: @item --strip-unneeded
  953: リロケーション処理に不要な,すべてのシンボルを削除します.
  954: 
  955: @item -K @var{symbolname}
  956: @itemx --keep-symbol=@var{symbolname}
  957: ソースファイルからシンボル@var{symbolname}のみコピーします.このオプショ
  958: ンは,1回以上与えることが可能です.
  959: 
  960: @item -N @var{symbolname}
  961: @itemx --strip-symbol=@var{symbolname}
  962: ソースファイルからシンボル@var{symbolname}をコピーしません.このオプショ
  963: ンは,1回以上与えることが可能です.
  964: 
  965: @item -L @var{symbolname}
  966: @itemx --localize-symbol=@var{symbolname}
  967: 外部から見えないようにするため,シンボル@var{symbolname}をファイルでロー
  968: カルにします.このオプションは,1回以上与えることが可能です.
  969: 
  970: @item -W @var{symbolname}
  971: @itemx --weaken-symbol=@var{symbolname}
  972: シンボル@var{symbolname}を弱くします.このオプションは,1回以上与えるこ
  973: とが可能です.
  974: 
  975: @item -x
  976: @itemx --discard-all
  977: ソースファイルからグローバルでないシンボルをコピーしません.
  978: @c FIXME any reason to prefer "non-global" to "local" here?
  979: 
  980: @item -X
  981: @itemx --discard-locals
  982: コンパイラが生成したローカルなシンボルをコピーしません.(これらは通常,
  983: @samp{L}または@samp{.}ではじまります.)
  984: 
  985: @item -b @var{byte}
  986: @itemx --byte=@var{byte}
  987: 入力ファイルの@var{byte}バイト毎のバイトのみ保持します(ヘッダデータは影
  988: 響されません).@var{byte}は,0から@var{interleave}-1までの範囲が可能で,
  989: @var{interleave}は,@samp{-i}や@samp{--interleave}オプションで与えられる,
  990: またはデフォルトの4になります.このオプションは,プログラマブル@sc{rom} 
  991: にファイルを作成するとき便利です.それは特に,@code{srec}出力ターゲット
  992: とともに使用されます.
  993: 
  994: @item -i @var{interleave}
  995: @itemx --interleave=@var{interleave}
  996: @var{interleave}バイト毎に1つのみコピーします.@var{-b}や@samp{--byte}オ
  997: プションを用いてそのバイトを選択してください.デフォルトは4です.
  998: @code{objcopy}は,@samp{-b}や@samp{--byte}を指定していない場合,このオプ
  999: ションを無視します.
 1000: 
 1001: @item -p
 1002: @itemx --preserve-dates
 1003: 出力ファイルのアクセスと編集の日付を入力ファイルと同じに設定します.
 1004: 
 1005: @item --debugging
 1006: 可能な場合,デバッグ情報を変換します.特定のデバッグ書式のみサポートされ
 1007: ていて,そして,変換処理は時間がかかるため,これはデフォルトではありませ
 1008: ん.
 1009: 
 1010: @item --gap-fill @var{val}
 1011: @var{val}を用いてセクション間のギャップを補充します.このオプションはセ
 1012: クションの@emph{load address} (LMA)に適用されます.それは,低いアドレス
 1013: @footnote{訳注:原文は lower address。}でセクションの大きさを増加し,そ
 1014: して,@var{val}を用いて作成される余分な空間で補充することで動作します.
 1015: 
 1016: @item --pad-to @var{address}
 1017: 出力ファイルをload address @var{address}までパディングします.これは,最
 1018: 後のセクションの大きさを増加することで動作します.余分な空間は,
 1019: @samp{--gap-fill}で指定された値(デフォルトはゼロ)で補充されます.
 1020: 
 1021: @item --set-start @var{val}
 1022: 新しいファイルの開始アドレスを@var{val}に設定します.すべてのオブジェク
 1023: トファイル書式が,開始アドレスの設定をサポートするわけではありません.
 1024: 
 1025: @item --change-start @var{incr}
 1026: @itemx --adjust-start @var{incr}
 1027: @cindex changing start address
 1028: 開始アドレスを@var{incr}を加えることで変更します.すべてのオブジェクトファ
 1029: イル書式が,開始アドレスの設定をサポートするわけではありません.
 1030: 
 1031: @item --change-addresses @var{incr}
 1032: @itemx --adjust-vma @var{incr}
 1033: @cindex changing object addresses
 1034: 開始アドレスのように,@var{incr}を加えることで,VMAとLMAアドレスを変更し
 1035: ます.オブジェクトファイルの書式によっては,セクションアドレスを任意に変
 1036: 更できないものもあります.これはセクションをリロケートしないことに注意し
 1037: てください.セクションが特定のアドレスにロードされていることをプログラム
 1038: が期待し,セクションが異なるアドレスにロードされるように変更するために,
 1039: このオプションが使用された場合,プログラムは失敗するかもしれません.
 1040: 
 1041: @item --change-section-address @var{section}@{=,+,-@}@var{val}
 1042: @itemx --adjust-section-vma @var{section}@{=,+,-@}@var{val}
 1043: @cindex changing section address
 1044: @var{section}で指名されたVMAアドレスとLMAアドレスの両方を設定または変更
 1045: します.@samp{=}が使用された場合,セクションのアドレスは,@var{val}に設
 1046: 定されます.それ以外の場合,@var{val}は,セクションアドレスに加えられる,
 1047: またはそれから引かれます.上記の@samp{--change-addresses}以下のコメント
 1048: を参照してください.入力ファイルに@var{section}が存在しない場合,
 1049: @samp{--no-change-warnings}が使用されていない限り,警告が発せられます.
 1050: 
 1051: @item --change-section-lma @var{section}@{=,+,-@}@var{val}
 1052: @cindex changing section LMA
 1053: 指名された@var{section}のLMAアドレスを設定または変更します.LMAアドレス
 1054: は,プログラムロード時にセクションがメモリにロードされるアドレスです.通
 1055: 常これはVMAと同じで,それは,プログラムの実行時のセクションのアドレスで
 1056: すが,システムによっては,特にプログラムがROMに保存されるものでは,2つが
 1057: 異なる可能性があります.@samp{=}が使用されている場合,セクションのアドレ
 1058: スは,@var{val}に設定されます.それ以外の場合,@var{val}はセクションアド
 1059: レスに加えられる,またはそれから引かれます.上記の
 1060: @samp{--change-addresses}以下のコメントを参照してください.@var{section}
 1061: が入力ファイルに存在しない場合,@samp{--no-change-warnings}が使用されて
 1062: いない限り,警告が発せられます.
 1063: 
 1064: @item --change-section-vma @var{section}@{=,+,-@}@var{val}
 1065: @cindex changing section VMA
 1066: 指名された@var{section}のVMAアドレスを設定または変更します.VMAアドレス
 1067: は,プログラムの実行を開始したときにセクションが位置するアドレスです.通
 1068: 常これはLMAと同じで,それは,セクションがメモリにロードされるアドレスで
 1069: すが,システムによっては,特にプログラムがROMに保存されるものでは,2つが
 1070: 異なる可能性があります.@samp{=}が使用されている場合,セクションのアドレ
 1071: スは,@var{val}に設定されます.それ以外の場合,@var{val}はセクションアド
 1072: レスに加えられる,またはそれから引かれます.上記の
 1073: @samp{--change-addresses}以下のコメントを参照してください.@var{section}
 1074: が入力ファイルに存在しない場合,@samp{--no-change-warnings}が使用されて
 1075: いない限り,警告が発せられます.
 1076: 
 1077: @item --change-warnings
 1078: @itemx --adjust-warnings
 1079: @samp{--change-section-address}や@samp{--change-section-lma}や
 1080: @samp{--change-section-vma}が使用されている場合で,指名されたセクション
 1081: が存在しない場合,警告を発します.これはデフォルトです.
 1082: 
 1083: @item --no-change-warnings
 1084: @itemx --no-adjust-warnings
 1085: @samp{--change-section-address}や@samp{--change-section-lma}や
 1086: @samp{--change-section-vma}が使用されている場合で,指名されたセクション
 1087: が存在しない場合でも警告を発しません.
 1088: 
 1089: @item --set-section-flags @var{section}=@var{flags}
 1090: 指名したセクションのフラグを設定します.@var{flags}引数は,カンマで分け
 1091: られたフラグ名の文字列です.認識される名前は,@samp{alloc},
 1092: @samp{contents},@samp{load},@samp{noload},@samp{readonly},
 1093: @samp{code},@samp{data},@samp{rom},@samp{share},そして@samp{debug}で
 1094: す.@samp{contents}フラグを内容のないセクションに対し設定可能ですが,内
 1095: 容のあるセクションの@samp{contents}フラグとしての意味がありません---その
 1096: 代わりにセクションを削除します.すべてのフラグがすべてのオブジェクトファ
 1097: イル書式に意味があるわけではありません.
 1098: 
 1099: @item --add-section @var{sectionname}=@var{filename}
 1100: ファイルをコピーしている間に,指名された@var{sectionname}の新しいセクショ
 1101: ンを追加します.新しいセクションの内容はファイル@var{filename}からもたら
 1102: されます.セクションの大きさは,ファイルのサイズになります.このオプショ
 1103: ンは,任意の名前を持つセクションをサポート可能なファイル書式でのみ動作し
 1104: ます.
 1105: 
 1106: @item --change-leading-char
 1107: オブジェクトファイル書式には,シンボルの開始時に特別な文字を使用するもの
 1108: もあります.そのような文字で最もよくあるのはアンダースコアで,それはコン
 1109: パイラがすべてのシンボルの前によく追加するものです.このオプションは,
 1110: @code{objcopy}に,オブジェクトファイル書式を変換している間にすべてのシン
 1111: ボルに前置される文字を変更するよう伝えます.オブジェクトファイル書式が同
 1112: じ前置文字を使用している場合,このオプションは効果がありません.それ以外
 1113: の場合,それは適切に,文字を加えたり,文字を削除したり,文字を変更したり
 1114: します.
 1115: 
 1116: @item --remove-leading-char
 1117: グローバルシンボルの最初の文字が,オブジェクトファイル書式で使用されてい
 1118: るシンボルに前置される特殊な文字の場合,その文字を削除します.そのような
 1119: 文字で最もよくあるのはアンダースコアです.このオプションは,すべてのグロー
 1120: バルシンボルから前置されるアンダースコアを削除します.シンボル名に対して
 1121: 異なる規則を持つ,異なるファイル書式のオブジェクト同士をリンクしたい場合,
 1122: これは役に立つはずです.これは@code{--change-leading-char}とは異なり,出
 1123: 力ファイルのオブジェクトファイルの書式に依存せず,それは適切なときは常に
 1124: シンボル名を変更します.
 1125: 
 1126: @item --redefine-sym @var{old}=@var{new}
 1127: シンボル名を@var{old}から@var{new}に変更します.ソースを持っていない2つ
 1128: のものを一緒にリンクしようとし,名前の衝突があるとき便利です.
 1129: 
 1130: @item --weaken
 1131: ファイルのすべてのグローバルシンボルを弱くします.リンカに対し@code{-R} 
 1132: オプションを使用した,他のオブジェクトに対しリンクするオブジェクトを構築
 1133: するとき,これは便利です.
 1134: 
 1135: @item -V
 1136: @itemx --version
 1137: @code{objcopy}のバージョンナンバーを表示します.
 1138: 
 1139: @item -v
 1140: @itemx --verbose
 1141: 冗長な出力です.修正されたすべてのオブジェクトファイルをリストアップしま
 1142: す.アーカイブの場合,@samp{objcopy -v}は,アーカイブのすべてのメンバー
 1143: をリストアップします.
 1144: 
 1145: @item --help
 1146: @code{objcopy}へのオプションの概要を表示します.
 1147: @end table
 1148: 
 1149: 
 1150: @node objdump
 1151: @chapter objdump
 1152: 
 1153: @cindex object file information
 1154: @kindex objdump
 1155: 
 1156: @smallexample
 1157: objdump [ -a | --archive-headers ] 
 1158:         [ -b @var{bfdname} | --target=@var{bfdname} ] 
 1159:         [ -C | --demangle ]
 1160:         [ -d | --disassemble ]
 1161:         [ -D | --disassemble-all ]
 1162:         [ -z | --disassemble-zeroes ]
 1163:         [ -EB | -EL | --endian=@{big | little @} ]
 1164:         [ -f | --file-headers ]
 1165:         [ --file-start-context ]
 1166:         [ -g | --debugging ]
 1167:         [ -h | --section-headers | --headers ]
 1168:         [ -i | --info ]
 1169:         [ -j @var{section} | --section=@var{section} ]
 1170:         [ -l | --line-numbers ]
 1171:         [ -S | --source ]
 1172:         [ -m @var{machine} | --architecture=@var{machine} ]
 1173:         [ -M @var{options} | --disassembler-options=@var{options}]
 1174:         [ -p | --private-headers ]
 1175:         [ -r | --reloc ]
 1176:         [ -R | --dynamic-reloc ]
 1177:         [ -s | --full-contents ]
 1178:         [ -G | --stabs ]
 1179:         [ -t | --syms ]
 1180:         [ -T | --dynamic-syms ]
 1181:         [ -x | --all-headers ]
 1182:         [ -w | --wide ]
 1183:         [ --start-address=@var{address} ]
 1184:         [ --stop-address=@var{address} ]
 1185:         [ --prefix-addresses]
 1186:         [ --[no-]show-raw-insn ]
 1187:         [ --adjust-vma=@var{offset} ]
 1188:         [ -V | --version ]
 1189:         [ -H | --help ]
 1190:         @var{objfile}@dots{}
 1191: @end smallexample
 1192: 
 1193: @code{objdump}は,1つ以上のオブジェクトファイルに関する情報を表示します.
 1194: オプションで,表示する特定の情報を制御します.この情報は,プログラムをコ
 1195: ンパイルして動作させたいだけのプログラマより,コンパイルツールに関する作
 1196: 業をしているプログラマに対し最も役に立ちます.
 1197: 
 1198: @var{objfile}@dots{}は,調査されるオブジェクトファイルです.アーカイブを
 1199: 指定したとき,@code{objdump}は,それぞれのメンバーオブジェクトファイルの
 1200: 情報を表示します.
 1201: 
 1202: ここに交互に表示しているオプションの長い形式と短い形式は等価です.リスト
 1203: の@samp{-a,-d,-D,-f,-g,-G,-h,-H,-p,-r,-R,-S,-t,-T,-V,-x}から少なくとも一
 1204: つのオプションを与える必要があります.
 1205: 
 1206: @table @code
 1207: @item -a
 1208: @itemx --archive-header
 1209: @cindex archive headers
 1210: @var{objfile}ファイルがすべてアーカイブの場合,アーカイブヘッダ情報を表
 1211: 示します(書式は@samp{ls -l}に似ています).@samp{ar tv}を用いてリストアッ
 1212: プ可能な情報に加え,@samp{objdump -a}は,それぞれのアーカイブのメンバー
 1213: のオブジェクトファイルの書式を表示します.
 1214: 
 1215: @item --adjust-vma=@var{offset}
 1216: @cindex section addresses in objdump
 1217: @cindex VMA in objdump
 1218: 情報をダンプしているとき,最初に,すべてのセクションアドレスに
 1219: @var{offset}を加えます.これは,セクションアドレスがシンボルテーブルに対
 1220: 応していない場合便利で,それは,@code{a.out}のようなセクションアドレスが
 1221: 存在できない書式を使用しているとき,セクションを特定のアドレスに配置する
 1222: とき発生します.
 1223: 
 1224: @item -b @var{bfdname}
 1225: @itemx --target=@var{bfdname}
 1226: @cindex object code format
 1227: オブジェクトファイルに対するオブジェクトコードの書式を@var{bfdname}に指
 1228: 定します.このオプションは不要かもしれません.@var{objdump}は,自動的に
 1229: 多くの書式を認識することが可能です.
 1230: 
 1231: 例えば,以下のようにします.
 1232: @example
 1233: objdump -b oasys -m vax -h fu.o
 1234: @end example
 1235: @noindent
 1236: それは,@file{fu.o}のセクションヘッダ(@samp{-h})からの情報の概要を表示し,
 1237: それは特に,Oasysコンパイラで生成される書式のVAXオブジェクトファイルとし
 1238: て認識(@samp{-m})されます.@samp{-i}オプションを用いて利用可能な書式をリ
 1239: ストアップ可能です.詳細は,@xref{Target Selection}.
 1240: 
 1241: @item -C
 1242: @itemx --demangle
 1243: @cindex demangling in objdump
 1244: 低レベルのシンボル名をユーザレベルの名前に復号(@dfn{demangle})します.シ
 1245: ステムによって前置される,最初にあるあらゆるアンダースコアを削除するだけ
 1246: でなく.これはC++関数名を可読にします.demangleの詳細は,@xref{c++filt}.
 1247: 
 1248: @item -G
 1249: @item --debugging
 1250: デバッグ情報を表示します.これは,ファイルに保存されているデバッグ情報の
 1251: 解析を試み,Cのような構文を使用してそれを出力します.デバッグ情報の特定
 1252: の形式のみ実装されています.
 1253: 
 1254: @item -d
 1255: @itemx --disassemble
 1256: @cindex disassembling object code
 1257: @cindex machine instructions
 1258: @var{objfile}から,機械語命令に対するアセンブラニーモニックを表示します.
 1259: このオプションは,(機械語)命令を含むことを期待されるそれらのセクションを,
 1260: 逆アセンブルするだけです.
 1261: 
 1262: @item -D
 1263: @itemx --disassemble-all
 1264: @samp{-d}に似ていますが,(機械語)命令を含むことを期待されるものだけでな
 1265: く,すべてのセクションの内容を逆アセンブルします.
 1266: 
 1267: @item --prefix-addresses
 1268: 逆アセンブルしているとき,それぞれの行に絶対アドレスを出力します.これは
 1269: より古い逆アセンブルの書式です.
 1270: 
 1271: @item --disassemble-zeroes
 1272: 通常逆アセンブルの出力はゼロブロックをスキップします.このオプションは,
 1273: それらのブロックを他のデータと同じように逆アセンブルする,直接的な逆アセ
 1274: ンブラです.
 1275: 
 1276: @item -EB
 1277: @itemx -EL
 1278: @itemx --endian=@{big|little@}
 1279: @cindex endianness
 1280: @cindex disassembly endianness
 1281: オブジェクトファイルのエンディアンを指定します.これは逆アセンブラにのみ
 1282: 効果があります.これは,S-recordのような,エンディアン情報を記述していな
 1283: いファイル書式を逆アセンブルしているとき役に立つはずです.
 1284: 
 1285: @item -f
 1286: @itemx --file-header
 1287: @cindex object file header
 1288: それぞれの@var{objfile}ファイルのヘッダ全体からの情報の概要を表示します.
 1289: 
 1290: @item --file-start-context
 1291: @cindex source code context
 1292: まだ表示されていない,内部にリストアップされているソースコード/ファイル
 1293: から逆アセンブルされたもの(おそらく'-S')を表示しているとき,コンテクスト
 1294: をファイルの先頭まで拡張することを指定します.
 1295: 
 1296: @item -h
 1297: @itemx --section-header
 1298: @itemx --header
 1299: @cindex section headers
 1300: オブジェクトファイルのセクションヘッダからの情報の概要を表示します.
 1301: 
 1302: ファイルのセグメントは,非標準のアドレスにリロケートされ,例えば,
 1303: @samp{-Ttext},@samp{-Tdata},または@samp{-Tbss}オプションが@code{ld}で
 1304: 使用されています.しかし,@code{a.out}のようなオブジェクトファイルの書式
 1305: によっては,ファイルセグメントの開始アドレスを保存しないものもあります.
 1306: そのような状況では,@code{ld}がセクションを正しくリロケートしますが,ファ
 1307: イルのセクションのヘッダのリストに@samp{objdump -h}を使用しても,正しい
 1308: アドレスを表示することはできません.その代わりに,それは通常のアドレスを
 1309: 表示し,それらはターゲットに対して暗黙のうちに行われます.
 1310: 
 1311: @item --help
 1312: @code{objdump}に対するオプションの概要を出力し,終了します.
 1313: 
 1314: @item -i
 1315: @itemx --info
 1316: @cindex architectures available
 1317: @cindex object formats available
 1318: @samp{-b}や@samp{-m}を用いて指定可能な,すべてのアーキテクチャとオブジェ
 1319: クト書式を示すリストを表示します.
 1320: 
 1321: @item -j @var{name}
 1322: @itemx --section=@var{name}
 1323: @cindex section information
 1324: セクション@var{name}に対する情報のみ表示します.
 1325: 
 1326: @item -l
 1327: @itemx --line-numbers
 1328: @cindex source filenames for object files
 1329: (デバッグ情報を使用した)表示に,表示されているオブジェクトコードやリロケー
 1330: トに一致しているファイル名とソースの行番号を用いてラベル付けします.
 1331: @samp{-d},@samp{-D},または@samp{-r}を用いた場合のみ有益です.
 1332: 
 1333: @item -m @var{machine}
 1334: @itemx --architecture=@var{machine}
 1335: @cindex architecture
 1336: @cindex disassembly architecture
 1337: オブジェクトファイルの逆アセンブル時に,使用するアーキテクチャを指定しま
 1338: す.これは,S-recordのような,アーキテクチャ情報が記述されていないオブジェ
 1339: クトファイルを逆アセンブルするとき役に立ちます.@samp{-i}オプションを用
 1340: いて,利用可能なアーキテクチャをリストアップ可能です.
 1341: 
 1342: @item -M @var{options}
 1343: @itemx --disassembler-options=@var{options}
 1344: ターゲット指定の情報を逆アセンブラに渡します.いくつかのターゲットでのみ
 1345: サポートします.
 1346: 
 1347: ターゲットがARMアーキテクチャの場合,逆アセンブラが使用されている間に使
 1348: 用するレジスタ名のセットを選択するために,このスイッチを使用することが可
 1349: 能です.@samp{-M reg-name-std} (デフォルト)を指定すると,ARMの(機械語)命
 1350: 令セットのドキュメントで使用しているレジスタ名を選択しますが,'sp'と呼ば
 1351: れるレジスタ13,'lr'と呼ばれるレジスタ14,そして'pc'と呼ばれるレジスタ15
 1352: レジスタは除きます.@samp{-M reg-names-apcs}を指定すると,ARM Procedure
 1353: Call Standardで使用されている名前のセットを選択するのに対し,@samp{-M
 1354: reg-names-raw}を指定すると,@samp{r}にレジスタ番号が続いたものを使用しま
 1355: す.
 1356: 
 1357: APCSレジスタ命名規則には2つの変形があり,@samp{-M reg-names-atpcs}と
 1358: @samp{-M reg-names-special-atpcs}により利用可能で,それはARM/Thumb
 1359: Procedure Call Standard命名規約を使用します.(通常のレジスタ名,または,
 1360: 特殊なレジスタ名のどちらかを使用します.)
 1361: 
 1362: このオプションは,ARMアーキテクチャに対し,スイッチ
 1363: @samp{--disassembler-options=force-thumb}を使用して,すべての(機械語)命
 1364: 令をTHUMB(機械語)命令として解釈するように逆アセンブラに強制するためにも
 1365: 使用可能です.他のコンパイラで生成される thumb コードの逆アセンブラを試
 1366: みるとき,これは役に立つはずです.
 1367: 
 1368: @item -p
 1369: @itemx --private-headers
 1370: オブジェクトファイルの書式特有の情報を出力します.出力される厳密な情報は
 1371: オブジェクトファイルの書式に依存します.オブジェクトファイルの書式によっ
 1372: ては,追加情報は出力されません.
 1373: 
 1374: @item -r
 1375: @itemx --reloc
 1376: @cindex relocation entries, in object file
 1377: ファイルのリロケーション項目を出力します.@samp{-d}や@samp{-D}とともに使
 1378: 用される場合,リロケーションは逆アセンブルの中に点在して出力されます.
 1379: 
 1380: @item -R
 1381: @itemx --dynamic-reloc
 1382: @cindex dynamic relocation entries, in object file
 1383: ファイルの動的なリロケーション項目を出力します.これは,ある形式の共有ラ
 1384: イブラリのような,動的なオブジェクトのみで意味があります.
 1385: 
 1386: @item -s
 1387: @itemx --full-contents
 1388: @cindex sections, full contents
 1389: @cindex object file sections
 1390: 要求されたあらゆるセクションの,すべての内容を表示します.
 1391: 
 1392: @item -S
 1393: @itemx --source
 1394: @cindex source disassembly
 1395: @cindex disassembly, with source
 1396: 可能な場合,逆アセンブラの中にソースコードを混ぜて表示します.@samp{-d}
 1397: が暗黙のうちに指定されます.
 1398: 
 1399: @item --show-raw-insn
 1400: (機械語)命令を逆アセンブルするとき,(機械語)命令をシンボリック形式と同様
 1401: に16進で出力します.@code{--prefix-addresses}が使用されているとき以外,
 1402: これはデフォルトです.
 1403: 
 1404: @item --no-show-raw-insn
 1405: (機械語)命令を逆アセンブルするとき,(機械語)命令バイトを出力しません.こ
 1406: れは@code{--prefix-addresses}が使用されているときデフォルトです.
 1407: 
 1408: @item -G
 1409: @item --stabs
 1410: @cindex stab
 1411: @cindex .stab
 1412: @cindex debug symbols
 1413: @cindex ELF object file format
 1414: 要求されるすべてのセクションの内容を全部表示します.ELFファイルの .stab 
 1415: と .stab.indexと .stab.exclセクションの内容を表示します.これは,
 1416: @code{.stab}デバッグシンボルテーブルの項目がELFのセクションに運び込まれ
 1417: る(Solaris 2.0のような)システムでのみ役に立ちます.そのほかのほとんどの
 1418: 書式では,デバッグシンボルテーブルの項目は,リンクシンボルとともにバラバ
 1419: ラに配置され,@samp{--syms}の出力で見ることが可能となります.スタブシン
 1420: ボルの詳細は,@ref{Top,Stabs,Stabs Overview,stabs.info, The ``stabs''
 1421: debug format}, を参照してください.
 1422: 
 1423: @item --start-address=@var{address}
 1424: @cindex start-address
 1425: データの表示を,指定したアドレスで開始します.これは@code{-d},@code{-r},
 1426: そして@code{-s}オプションの出力に効果があります.
 1427: 
 1428: @item --stop-address=@var{address}
 1429: @cindex stop-address
 1430: データの表示を,指定したアドレスで停止します.これは@code{-d},@code{-r},
 1431: そして@code{-s}オプションの出力に効果があります.
 1432: 
 1433: @item -t
 1434: @itemx --syms
 1435: @cindex symbol table entries, printing
 1436: ファイルのシンボルテーブルの項目を出力します.これは,@samp{nm}プログラ
 1437: ムで提供される情報に似ています.
 1438: 
 1439: @item -T
 1440: @itemx --dynamic-syms
 1441: @cindex dynamic symbol table entries, printing
 1442: ファイルの動的なシンボルテーブルの項目を表示します.これは,特定の形式の
 1443: 共有ライブラリのような,動的なオブジェクトに対してのみ意味があります.こ
 1444: れは,@samp{-D} (@samp{--dynamic})オプションが与えられている@samp{nm}プ
 1445: ログラムで提供される情報に似ています.
 1446: 
 1447: @item --version
 1448: @code{objdump}のバージョンナンバーを出力し終了します.
 1449: 
 1450: @item -x
 1451: @itemx --all-header
 1452: @cindex all header information, object file
 1453: @cindex header information, all
 1454: 利用可能なヘッダ情報をすべて表示し,それはシンボルテーブルと,リロケーショ
 1455: ン項目を含みます.@samp{-x}を用いると,@samp{-a -f -h -r -t}をすべて指定
 1456: したものと等価になります.
 1457: 
 1458: @item -w
 1459: @itemx --wide
 1460: @cindex wide output, printing
 1461: 80列以上の出力デバイスに対し,数行で書式化します.
 1462: @end table
 1463: 
 1464: 
 1465: @node ranlib
 1466: @chapter ranlib
 1467: 
 1468: @kindex ranlib
 1469: @cindex archive contents
 1470: @cindex symbol index
 1471: 
 1472: @smallexample
 1473: ranlib [-vV] @var{archive}
 1474: @end smallexample
 1475: 
 1476: @code{ranlib}は,アーカイブの内容の索引を生成し,それをアーカイブに保存
 1477: します.索引は,リロケート可能なオブジェクトファイルであるアーカイブのメ
 1478: ンバーにより定義される,それぞれのシンボルをリストアップします.
 1479: 
 1480: この索引をリストアップするために,@samp{nm -s}や@samp{nm --print-armap}
 1481: を使用することが可能です.
 1482: 
 1483: そのような索引を持ったアーカイブは,ライブラリとのリンクで高速になり,アー
 1484: カイブ内での位置によらず,ライブラリ内でのお互いの呼び出し動作を可能にし
 1485: ます.
 1486: 
 1487: @sc{gnu} @code{ranlib}プログラムは,@sc{gnu} @code{ar}のもう一つの形式で
 1488: す.@code{ranlib}を実行することは,@samp{ar -s}を実行することと完全に等
 1489: 価です.@xref{ar}.
 1490: 
 1491: @table @code
 1492: @item -v
 1493: @itemx -V
 1494: @itemx --version
 1495: @code{ranlib}のバージョンナンバーを表示します.
 1496: @end table
 1497: 
 1498: 
 1499: @node size
 1500: @chapter size
 1501: 
 1502: @kindex size
 1503: @cindex section sizes
 1504: 
 1505: @smallexample
 1506: size [ -A | -B | --format=@var{compatibility} ]
 1507:      [ --help ]  [ -d | -o | -x | --radix=@var{number} ]
 1508:      [ --target=@var{bfdname} ]  [ -V | --version ]  
 1509:      [ @var{objfile}@dots{} ]
 1510: @end smallexample
 1511: 
 1512: @sc{gnu} @code{size}ユーティリティは,その引数リスト内の,それぞれのオブ
 1513: ジェクトやアーカイブファイル@var{objfile}に対し,セクションのサイズ---と
 1514: 全体のサイズ---をリストアップします.デフォルトで,それぞれのオブジェク
 1515: トファイルやそれぞれのアーカイブのモジュールに対し,一行の出力が生成され
 1516: ます.
 1517: 
 1518: @var{objfile}@dots{}は,調査されるオブジェクトファイルです.何も指定され
 1519: ない場合,ファイル@code{a.out}が使用されます.
 1520: 
 1521: コマンドラインオプションには,以下の意味があります.
 1522: 
 1523: @table @code
 1524: @item -A
 1525: @itemx -B
 1526: @itemx --format=@var{compatibility}
 1527: @cindex @code{size} display format
 1528: これらのオプションの一つを使用した場合,System V @code{size} (@samp{-A},
 1529: または@samp{--format=sysv}の使用),または,Berkeley @code{size}
 1530: (@samp{-B},または@samp{--format=berkeley}の使用)に似ている@sc{gnu}
 1531: @code{size}からの出力のいずれかを選択することができます.デフォルトは,
 1532: 一行の書式はBerkeleyのものに似ています.
 1533: @c Bonus for doc-source readers: you can also say --format=strange (or
 1534: @c anything else that starts with 's') for sysv, and --format=boring (or
 1535: @c anything else that starts with 'b') for Berkeley.
 1536: 
 1537: 以下は,Berkeley (デフォルト)書式の@code{size}の出力例です.
 1538: 
 1539: @smallexample
 1540: $ size --format=Berkeley ranlib size
 1541: text    data    bss     dec     hex     filename
 1542: 294880  81920   11592   388392  5ed28   ranlib
 1543: 294880  81920   11888   388688  5ee50   size
 1544: @end smallexample
 1545: 
 1546: @noindent
 1547: これは同じデータですが,System Vの記法を選択して表示されています.
 1548: 
 1549: @smallexample
 1550: $ size --format=SysV ranlib size
 1551: ranlib  :
 1552: section         size         addr
 1553: .text         294880         8192       
 1554: .data          81920       303104       
 1555: .bss           11592       385024       
 1556: Total         388392    
 1557: 
 1558: 
 1559: size  :
 1560: section         size         addr
 1561: .text         294880         8192       
 1562: .data          81920       303104       
 1563: .bss           11888       385024       
 1564: Total         388688    
 1565: @end smallexample
 1566: 
 1567: @item --help
 1568: 受け入れ可能な引数とオプションの概要を表示します.
 1569: 
 1570: @item -d
 1571: @itemx -o
 1572: @itemx -x
 1573: @itemx --radix=@var{number}
 1574: @cindex @code{size} number format
 1575: @cindex radix for section sizes
 1576: これらのオプションの一つを使用した場合,それぞれのセクションのサイズを,
 1577: 10進数(@samp{-d}または@samp{--radix=10}),8進数(@samp{-o}または
 1578: @samp{--radix=8}),または16進数(@samp{-x}または@samp{--radix=16})で与え
 1579: られるもののいづれかに制御可能です.@samp{--radix=@var{number}}では,3つ
 1580: の値(8, 10, 16)のみサポートされます.全体のサイズは常に2つの基数で与えら
 1581: れます.それは,@samp{-d}や@samp{-x}に対する,10進数と16進数,または
 1582: @samp{-o}を使用した場合,8進数と16進数になります.
 1583: 
 1584: @item --target=@var{bfdname}
 1585: @cindex object code format
 1586: @var{objfile}に対するオブジェクトコードの書式を@var{bfdname}として指定し
 1587: ます.このオプションは不要かもしれません.@code{size}は自動的に多くの書
 1588: 式を認識できます.詳細は,@xref{Target Selection}.
 1589: 
 1590: @item -V
 1591: @itemx --version
 1592: @code{size}のバージョンナンバーを表示します.
 1593: @end table
 1594: 
 1595: 
 1596: @node strings
 1597: @chapter strings
 1598: @kindex strings
 1599: @cindex listings strings
 1600: @cindex printing strings
 1601: @cindex strings, printing
 1602: 
 1603: @smallexample
 1604: strings [-afov] [-@var{min-len}] [-n @var{min-len}] [-t @var{radix}] [-]
 1605:         [--all] [--print-file-name] [--bytes=@var{min-len}]
 1606:         [--radix=@var{radix}] [--target=@var{bfdname}]
 1607:         [--help] [--version] @var{file}@dots{}
 1608: @end smallexample
 1609: 
 1610: それぞれの与えられた@var{file}に対し,@sc{gnu} @code{strings}は,出力可
 1611: 能な文字の,少なくとも4文字の長さ(または以下のオプションで与えられた数) 
 1612: のならびで,それに出力不可能な文字が続くものを出力します.デフォルトで,
 1613: オブジェクトファイルの,初期化されロードされたセクションから,文字列のみ
 1614: 出力します.それ以外のファイルの形式では,ファイル全体から文字列を出力し
 1615: ます.
 1616: 
 1617: @code{strings}は,テキストではないファイルの内容を判断することに,主に役
 1618: 立ちます.
 1619: 
 1620: @table @code
 1621: @item -a
 1622: @itemx --all
 1623: @itemx -
 1624: オブジェクトファイルの初期化されロードされるセクションのみをスキャンする
 1625: のではありません.ファイル全体をスキャンします.
 1626: 
 1627: @item -f
 1628: @itemx --print-file-name
 1629: それぞれの文字列の前にファイル名を出力します.
 1630: 
 1631: @item --help
 1632: プログラムの使用方法の概要を標準出力に出力し終了します.
 1633: 
 1634: @item -@var{min-len}
 1635: @itemx -n @var{min-len}
 1636: @itemx --bytes=@var{min-len}
 1637: デフォルトの4ではなく,少なくとも@var{min-len}文字の長さの文字の列を出力
 1638: します.
 1639: 
 1640: @item -o
 1641: @samp{-t o}に似ています.@code{strings}の他のバージョンには,代わりに
 1642: @samp{-t d}のように@samp{-o}を動作させるものもあります.我々は,両方の互
 1643: 換性を提供することができないので,単純にこちらを選びました.
 1644: 
 1645: @item -t @var{radix}
 1646: @itemx --radix=@var{radix}
 1647: それぞれの文字列の前に,ファイル内部でのオフセットを出力します.単一文字
 1648: の引数を指定した場合,オフセットの基数---8進数に対する@samp{o},16進数に
 1649: 対する@samp{x},または10進数に対する@samp{x}---を指定します.
 1650: 
 1651: @item --target=@var{bfdname}
 1652: @cindex object code format
 1653: システムのデフォルトの書式以外のオブジェクトコードの書式を指定します.詳
 1654: 細は,@xref{Target Selection}.
 1655: 
 1656: @item -v
 1657: @itemx --version
 1658: プログラムのバージョンナンバーを標準出力に出力し終了します.
 1659: @end table
 1660: 
 1661: 
 1662: @node strip
 1663: @chapter strip
 1664: 
 1665: @kindex strip
 1666: @cindex removing symbols
 1667: @cindex discarding symbols
 1668: @cindex symbols, discarding
 1669: 
 1670: @smallexample
 1671: strip [ -F @var{bfdname} | --target=@var{bfdname} ]
 1672:       [ -I @var{bfdname} | --input-target=@var{bfdname} ]
 1673:       [ -O @var{bfdname} | --output-target=@var{bfdname} ]
 1674:       [ -s | --strip-all ] [ -S | -g | --strip-debug ]
 1675:       [ -K @var{symbolname} | --keep-symbol=@var{symbolname} ]
 1676:       [ -N @var{symbolname} | --strip-symbol=@var{symbolname} ]
 1677:       [ -x | --discard-all ] [ -X | --discard-locals ]
 1678:       [ -R @var{sectionname} | --remove-section=@var{sectionname} ]
 1679:       [ -o @var{file} ] [ -p | --preserve-dates ]
 1680:       [ -v | --verbose ]  [ -V | --version ]  [ --help ]
 1681:       @var{objfile}@dots{}
 1682: @end smallexample
 1683: 
 1684: @sc{gnu} @code{strip}は,オブジェクトファイル@var{objfile}からシンボルを
 1685: すべて廃棄します.オブジェクトファイルのリストには,アーカイブを含めるこ
 1686: とが可能です.少なくとも1つのオブジェクトファイルを与える必要があります.
 1687: 
 1688: @code{strip}は,異なる名前に編集されたものを書き出すのではなく,その引数
 1689: で指名されたファイルを変更します.
 1690: 
 1691: @table @code
 1692: @item -F @var{bfdname}
 1693: @itemx --target=@var{bfdname}
 1694: オリジナルの @var{objfile}を,オブジェクトコード書式@var{bfdname}を用い
 1695: たファイルとして扱い,同じ書式で再書き込みします.詳細は,@xref{Target
 1696: Selection}.
 1697: 
 1698: @item --help
 1699: @code{strip}へのオプションの概要を表示し終了します.
 1700: 
 1701: @item -I @var{bfdname}	
 1702: @itemx --input-target=@var{bfdname}
 1703: オリジナルの@var{objfile}を,オブジェクトコード書式@var{bfdname}を用いた
 1704: ファイルとして扱います.詳細は,@xref{Target Selection}.
 1705: 
 1706: @item -O @var{bfdname}
 1707: @itemx --output-target=@var{bfdname}
 1708: @var{objfile}を,出力書式@var{bfdname}のファイルで置換します.詳細は,
 1709: @xref{Target Selection}.
 1710: 
 1711: @item -R @var{sectionname}
 1712: @itemx --remove-section=@var{sectionname}
 1713: @var{sectionname}で指名されたすべてのセクションを,出力ファイルから削除
 1714: します.このオプションは一回以上与えることが可能です.このオプションを使
 1715: 用すると,不適切にも出力ファイルを利用不可能にする可能性があることに注意
 1716: してください.
 1717: 
 1718: @item -s
 1719: @itemx --strip-all
 1720: すべてのシンボルを削除します.
 1721: 
 1722: @item -g
 1723: @itemx -S
 1724: @itemx --strip-debug
 1725: デバッグシンボルのみ削除します.
 1726: 
 1727: @item --strip-unneeded
 1728: リロケーション処理に不要なすべてのシンボルを削除します.
 1729: 
 1730: @item -K @var{symbolname}
 1731: @itemx --keep-symbol=@var{symbolname}
 1732: シンボル@var{symbolname}のみ,ソースファイルに保存します.このオプション
 1733: は一回以上与えることが可能です.
 1734: 
 1735: @item -N @var{symbolname}
 1736: @itemx --strip-symbol=@var{symbolname}
 1737: シンボル@var{symbolname}をソースファイルから削除します.このオプションは
 1738: 一回以上与えることが可能で,@code{-K}以外の@code{strip}オプションと組み
 1739: 合わせることも可能です.
 1740: 
 1741: @item -o @var{file}
 1742: 既存のファイルを置換するのではなく,@code{strip}された出力を@var{file}に
 1743: 書き込みます.この引数が使用されたとき,1つの@var{objfile}引数のみ指定可
 1744: 能です.
 1745: 
 1746: @item -p
 1747: @itemx --preserve-dates
 1748: ファイルのアクセスと編集の日付を保持します.
 1749: 
 1750: @item -x
 1751: @itemx --discard-all
 1752: グローバルでないシンボルを削除します.
 1753: 
 1754: @item -X
 1755: @itemx --discard-locals
 1756: コンパイラが生成したローカルシンボルを削除します.(これらは通常,
 1757: @samp{L}または@samp{.}で始まります.)
 1758: 
 1759: @item -V
 1760: @itemx --version
 1761: @code{strip}のバージョンナンバーを表示します.
 1762: 
 1763: @item -v
 1764: @itemx --verbose
 1765: 冗長な出力です.編集されたすべてのオブジェクトファイルをリストアップしま
 1766: す.アーカイブの場合,@samp{strip -v}はアーカイブのすべてのメンバーをリ
 1767: ストアップします.
 1768: @end table
 1769: 
 1770: 
 1771: @node c++filt, addr2line, strip, Top
 1772: @chapter c++filt
 1773: 
 1774: @kindex c++filt
 1775: @cindex demangling C++ symbols
 1776: 
 1777: @smallexample
 1778: c++filt [ -_ | --strip-underscores ]
 1779:         [ -j | --java ]
 1780: 	[ -n | --no-strip-underscores ]
 1781:         [ -s @var{format} | --format=@var{format} ]
 1782:         [ --help ]  [ --version ]  [ @var{symbol}@dots{} ]
 1783: @end smallexample
 1784: 
 1785: @kindex cxxfilt
 1786: C++とJava言語は,関数のオーバーロードを提供し,それは(それぞれ異なる型の
 1787: パラメータの受け入れを提供する)同じ名前の多くの関数を書くことが可能だと
 1788: いうことを意味します.すべてのC++とJavaの関数名は,低レベルのアセンブリ
 1789: ラベルに符号化されます(この処理は@dfn{mangling}として知られています.)
 1790: @code{c++filt}@footnote{MS-DOSは,ファイル名に@kbd{+}文字が使用できない
 1791: ので,MS-DOS上でのこのプログラムは@code{cxxfilt}と命名されます.}プログ
 1792: ラムは,マッピングを反転します.それは,これらのオーバーロードされた関数
 1793: を破壊することから,リンカが守ることができるように,低レベルの名前を,ユー
 1794: ザレベルの名前に復号(@dfn{demangles})します.
 1795: 
 1796: 入力にあるすべての英数単語(文字,数字,アンダースコア,ドル記号,または
 1797: ピリオド)は,ポテンシャルラベルと考えられます.ラベルをC++の名前に復号す
 1798: る場合,C++の名前は出力で低レベルの名前に置換されます.
 1799: 
 1800: 個別のシンボルを解読するために@code{c++filt}を使用することが可能です.
 1801: 
 1802: @example
 1803: c++filt @var{symbol}
 1804: @end example
 1805: 
 1806: @var{symbol}引数が与えられた場合,@code{c++filt}は,シンボル名を標準入力
 1807: から読み込み,demangleされた名前を標準出力に書き出します.すべての結果は,
 1808: 標準出力に出力されます.
 1809: 
 1810: @table @code
 1811: @item -_
 1812: @itemx --strip-underscores
 1813: システムによっては,CとC++のコンパイラが,すべての名前の前にアンダースコ
 1814: アを書き込むものもあります.例えば,Cでの名前@code{foo}が,低レベルでは
 1815: 名前@code{_foo}になります.このオプションは,最初のアンダースコアを削除
 1816: します.@code{c++filt}がデフォルトでアンダースコアを削除するかどうかはター
 1817: ゲットに依存します.
 1818: 
 1819: @item -j
 1820: @itemx --java
 1821: demangleされた名前を,Javaの構文を用いて出力します.デフォルトは,C++の
 1822: 構文の使用です.
 1823: 
 1824: @item -n
 1825: @itemx --no-strip-underscores
 1826: 最初のアンダースコアを削除しません.
 1827: 
 1828: @item -s @var{format}
 1829: @itemx --format=@var{format}
 1830: @sc{gnu} @code{nm}は,異なるC++コンパイラが使用されてmangleしている,3つ
 1831: の異なるメソッドを復号することが可能です.このオプションの引数は,使用さ
 1832: れているメソッドを選択します.
 1833: 
 1834: @table @code
 1835: @item gnu
 1836: @sc{gnu}コンパイラで使用されるもの(デフォルトメソッド).
 1837: @item lucid
 1838: Lucidコンパイラで使用されるもの.
 1839: @item arm
 1840: C++ Annotated Reference Manualで指定されるもの.
 1841: @item hp
 1842: HPコンパイラで使用されるもの.
 1843: @item edg
 1844: EDGコンパイラで使用されるもの.
 1845: @end table
 1846: 
 1847: @item --help
 1848: @code{c++filt}のオプションの概要を出力し終了します.
 1849: 
 1850: @item --version
 1851: @code{c++filt}のバージョンナンバーを出力し終了します.
 1852: @end table
 1853: 
 1854: @quotation
 1855: @emph{警告:} @code{c++filt}は,新しいユーティリティで,そのユーザインター
 1856: フェースの詳細は将来のリリースで変更を受けやすくなっています.特に,コマ
 1857: ンドラインの引数として渡される名前を復号するために,コマンドラインオプショ
 1858: ンが,将来要求されるかもしれません.言い換えると以下のようになるというこ
 1859: とです.
 1860: 
 1861: @example
 1862: c++filt @var{symbol}
 1863: @end example
 1864: 
 1865: @noindent
 1866: これが,将来のリリースでは,以下のようになるかもしれません.
 1867: 
 1868: @example
 1869: c++filt @var{option} @var{symbol}
 1870: @end example
 1871: @end quotation
 1872: 
 1873: 
 1874: @node addr2line
 1875: @chapter addr2line
 1876: 
 1877: @kindex addr2line
 1878: @cindex address to file name and line number
 1879: 
 1880: @smallexample
 1881: addr2line [ -b @var{bfdname} | --target=@var{bfdname} ]
 1882:           [ -C | --demangle ]
 1883:           [ -e @var{filename} | --exe=@var{filename} ]
 1884:           [ -f | --functions ] [ -s | --basename ]
 1885:           [ -H | --help ] [ -V | --version ]
 1886:           [ addr addr ... ]
 1887: @end smallexample
 1888: 
 1889: @code{addr2line}は,プログラムアドレスをファイル名と行番号に変換します.
 1890: アドレスと実行形式が与えられた場合,ファイル名と行番号が与えられたアドレ
 1891: スに関連していることを判別するため,それは実行形式内のデバッグ情報を使用
 1892: します.
 1893: 
 1894: 使用する実行形式は,@code{-e}オプションで指定されます.デフォルトは,ファ
 1895: イル@code{a.out}です.
 1896: 
 1897: @code{addr2line}は,2つの処理モードがあります.
 1898: 
 1899: 1番目は,16進アドレスがコマンドラインで指定され,@code{addr2line}は,それ
 1900: ぞれのアドレスに対しファイル名と行番号を表示します.
 1901: 
 1902: 2番目は,@code{addr2line}が16進のアドレスと標準入力から読み込み,それぞ
 1903: れのアドレスに対し,ファイル名と行番号を標準出力に出力します.このモード
 1904: では,@code{addr2line}は,動的に選択されたアドレスを変換するパイプとして
 1905: 使用可能です.
 1906: 
 1907: 出力の書式は,@samp{FILENAME:LINENO}です.それぞれのアドレスに対するファ
 1908: イル名と行番号は,個別の行に出力されます.@code{-f}オプションが使用され
 1909: た場合,それぞれの@samp{FILENAME:LINENO}行に,アドレスに含まれる関数名
 1910: @samp{FUNCTIONNAME}が前置されます.
 1911: 
 1912: ファイル名と関数名が決定できない場合,@code{addr2line}は2つの疑問符をそ
 1913: の場所に出力します.行番号が決定できない場合,@code{addr2line}は,0を出
 1914: 力します.
 1915: 
 1916: ここで交互に表示している,オプションの長い形式と短い形式は等価です.
 1917: 
 1918: @table @code
 1919: @item -b @var{bfdname}
 1920: @itemx --target=@var{bfdname}
 1921: @cindex object code format
 1922: オブジェクトファイルに対するオブジェクトコードを@var{bfdname}として指定
 1923: します.
 1924: 
 1925: @item -C
 1926: @itemx --demangle
 1927: @cindex demangling in objdump
 1928: 低レベルのシンボル名をユーザレベル名に復号(@dfn{demangle})します.システ
 1929: ムによって前置される,すべての最初のアンダースコアを削除する他に,これは
 1930: C++関数名を可読にします.demangleの詳細は,@xref{c++filt}.
 1931: 
 1932: @item -e @var{filename}
 1933: @itemx --exe=@var{filename}
 1934: 変換したいアドレスに対する実行形式の名前を指定します.デフォルトファイル
 1935: は@code{a.out}です.
 1936: 
 1937: @item -f
 1938: @itemx --functions
 1939: ファイルと行番号の情報と同様に,関数名も表示します.
 1940: 
 1941: @item -s
 1942: @itemx --basenames
 1943: それぞれのファイル名のベースのみ表示します.
 1944: @end table
 1945: 
 1946: 
 1947: @node nlmconv
 1948: @chapter nlmconv
 1949: 
 1950: @code{nlmconv}は,リロケートオブジェクトファイルをNetWare Loadable
 1951: Moduleに変換します.
 1952: 
 1953: @ignore
 1954: @code{nlmconv} currently works with @samp{i386} object
 1955: files in @code{coff}, @sc{elf}, or @code{a.out} format, and @sc{SPARC}
 1956: object files in @sc{elf}, or @code{a.out} format@footnote{
 1957: @code{nlmconv} should work with any @samp{i386} or @sc{sparc} object
 1958: format in the Binary File Descriptor library.  It has only been tested
 1959: with the above formats.}.
 1960: @end ignore
 1961: 
 1962: @quotation
 1963: @emph{警告:} @code{nlmconv}は,NLMターゲットに対してのみ役に立つので,常
 1964: にバイナリユーティリティの一部として構築されるわけではありません.
 1965: @end quotation
 1966: 
 1967: @smallexample
 1968: nlmconv [ -I @var{bfdname} | --input-target=@var{bfdname} ]
 1969:         [ -O @var{bfdname} | --output-target=@var{bfdname} ]
 1970:         [ -T @var{headerfile} | --header-file=@var{headerfile} ]
 1971:         [ -d | --debug]  [ -l @var{linker} | --linker=@var{linker} ]
 1972:         [ -h | --help ]  [ -V | --version ]
 1973:         @var{infile} @var{outfile}
 1974: @end smallexample
 1975: 
 1976: @code{nlmconv}は,リロケート可能な@samp{i386}オブジェクトファイル
 1977: @var{infile}をNetWare Loadable Module @var{outfile}に変換し,さらに,NLM 
 1978: ヘッダ情報に対する@var{headerfile}を読み込みます.ヘッダで使用されている
 1979: NLMコマンドファイル言語を書くことの説明は, Novell, Inc.で利用可能な,
 1980: NLM Software Developer's Kit (``NLM SDK'')の一部である,@cite{NLM
 1981: Development and Tools Overview}の,@samp{linkers}セクションの特定の
 1982: @samp{NLMLINK}を参照してください.@code{nlmconv}は,@var{infile}を読み込
 1983: むために,@sc{gnu} Binary File Descriptorライブラリを使用します.詳細は,
 1984: @ref{BFD,,BFD,ld.info,Using LD},を参照してください.
 1985: 
 1986: @code{nlmconv}はリンクステップを実行可能です.言い換えると,(コマンドラ
 1987: インで1つの入力ファイルを単に指定するのではなく)定義ファイルでリストアッ
 1988: プした場合,入力に対して1つ以上のオブジェクトファイルをリストアップする
 1989: ことが可能です.この場合,@code{nlmconv}はリンカを呼び出します.
 1990: 
 1991: @table @code
 1992: @item -I @var{bfdname}
 1993: @itemx --input-target=@var{bfdname}
 1994: 入力ファイルのオブジェクト書式です.@code{nlmconv}は,通常与えられたファ
 1995: イルの書式を決定できます(そのためデフォルトは不要です).詳細は,
 1996: @xref{Target Selection}.
 1997: 
 1998: @item -O @var{bfdname}
 1999: @itemx --output-target=@var{bfdname}
 2000: 出力ファイルのオブジェクトの書式です.@code{nlmconv}は,出力の書式を入力
 2001: の書式を基に推測し,例えば,@samp{i386}入力ファイルに対する出力の書式は,
 2002: @samp{nlm32-i386}になります.詳細は,@xref{Target Selection}.
 2003: 
 2004: @item -T @var{headerfile}
 2005: @itemx --header-file=@var{headerfile}
 2006: NLMヘッダ情報のために@var{headerfile}を読み込みます.ヘッダファイルで使
 2007: 用されているNLMコマンドファイルの言語を書くときの(機械語)命令については,
 2008: Novell, Inc. で利用可能なNLM Software Developer's Kitの一部となっている,
 2009: @cite{NLM Development and Tools Overview}の@samp{linkers}セクションを参
 2010: 照してください.
 2011: 
 2012: @item -d
 2013: @itemx --debug
 2014: @code{nlmconv}が使用しているリンカコマンドラインを(標準エラー出力に)表示
 2015: します.
 2016: 
 2017: @item -l @var{linker}
 2018: @itemx --linker=@var{linker}
 2019: あらゆるリンクで@var{linker}を使用します.@var{linker}は,絶対パス名また
 2020: は相対パス名が可能です.
 2021: 
 2022: @item -h
 2023: @itemx --help
 2024: 使用方法の概要を出力します.
 2025: 
 2026: @item -V
 2027: @itemx --version
 2028: @code{nlmconv}のバージョンナンバーを出力します.
 2029: @end table
 2030: 
 2031: 
 2032: @node windres
 2033: @chapter windres
 2034: 
 2035: @code{windres}は,複数のWindowsのリソースで使用可能です.
 2036: 
 2037: @quotation
 2038: @emph{警告:} @code{windres}は,Windowsターゲットに対してのみ役に立つので,
 2039: 常にバイナリユーティリティの一部として構築されるわけではありません.
 2040: @end quotation
 2041: 
 2042: @smallexample
 2043: windres [options] [input-file] [output-file]
 2044: @end smallexample
 2045: 
 2046: @code{windres}はリソースを入力ファイルから読み込み,それを出力ファイルに
 2047: コピーします.ファイルは以下の3つの書式の内,いずれか1つが可能です.
 2048: 
 2049: @table @code
 2050: @item rc
 2051: リソースコンパイラで読み込むテキスト書式.
 2052: 
 2053: @item res
 2054: リソースコンパイラが生成したバイナリ書式.
 2055: 
 2056: @item coff
 2057: COFFオブジェクト,または,実行形式.
 2058: @end table
 2059: 
 2060: これらの書式の違いに記述は,Microsoftのドキュメントで利用可能です.
 2061: 
 2062: @code{windres}が@code{rc}書式から@code{res}書式に変換するとき,それは
 2063: Windows Resource Compilerのように動作します.@code{windres}が@code{res}
 2064: 書式から@code{coff}書式に変換するとき,それはWindows @code{CVTRES}プログ
 2065: ラムのように動作します.
 2066: 
 2067: @code{windres}が@code{rc}ファイルを生成するとき,出力は似ていますが,入
 2068: 力で期待される書式と同一ではありません.入力@code{rc}ファイルが外部のファ
 2069: イル名を参照するとき,出力@code{rc}ファイルは,その代わりに,ファイルの
 2070: 内容を含めます.
 2071: 
 2072: 入力や出力の書式が指定されない場合,@code{windres}はファイル名,または,
 2073: 入力ファイルのファイルの内容を基に推測します.@file{.rc}の拡張子を持つファ
 2074: イルは,@code{rc}ファイルとして扱われ,@file{.res}の拡張子を持つファイル
 2075: は,@code{res}ファイルとして扱われ,そして,@file{.o}や@file{.exe}の拡張
 2076: 子を持つファイルは,@code{coff}ファイルとして扱われます.
 2077: 
 2078: 出力ファイルが指定されない場合,@code{windres}は,@code{rc}書式内のリソー
 2079: スを標準出力に出力します.
 2080: 
 2081: @code{rc}を書き,COFFオブジェクトファイルに変換するために@code{windres} 
 2082: を使用し,COFFファイルをアプリケーションにリンクするのが通常の使用方法で
 2083: す.これは,@code{rc}ファイルのリソースの記述を,Windowsで利用可能にしま
 2084: す.
 2085: 
 2086: @table @code
 2087: @item -i @var{filename}
 2088: @itemx --input @var{filename}
 2089: 入力ファイル名です.このオプションが使用されない場合,@code{windres} は,
 2090: 最初の非オプションの引数を入力ファイル名として使用します.非オプションの
 2091: 引数がない場合,@code{windres}は,標準入力から読み込みます.
 2092: @code{windres}は,COFFファイルを標準入力から読み込むことはできません.
 2093: 
 2094: @item -o @var{filename}
 2095: @itemx --output @var{filename}
 2096: 出力ファイル名です.このオプションが使用されない場合,@code{windres} は,
 2097: 入力ファイル名として使用した後の,最初の非オプションの引数を出力ファイル
 2098: 名として使用します.非オプションの引数がない場合,@code{windres}は,標準
 2099: 出力に書き出します.@code{windres}は,COFFファイルを標準出力に書き出すこ
 2100: とはできません.
 2101: 
 2102: @item -I @var{format}
 2103: @itemx --input-format @var{format}
 2104: 読み込む入力の書式です.@var{format}は,@samp{res},@samp{rc},または
 2105: @samp{coff}が可能です.入力書式が指定されない場合,@code{windres}は,上
 2106: 記のように推測します.
 2107: 
 2108: @item -O @var{format}
 2109: @itemx --output-format @var{format}
 2110: 生成する出力の書式です.@var{format}は,@samp{res},@samp{rc},または
 2111: @samp{coff}が可能です.出力書式が指定されない場合,@code{windres}は,上
 2112: 記のように推測します.
 2113: 
 2114: @item -F @var{target}
 2115: @itemx --target @var{target}
 2116: 入出力としてのCOFFに対して使用するBFD書式を指定します.これは,BFDターゲッ
 2117: ト名です.サポートされているターゲットのリストを見るために,
 2118: @code{--help}オプションが使用可能です.通常,@code{windres}はデフォルト
 2119: の書式を使用し,それは@code{--help}オプションでリストアップされる最初の
 2120: ものです.@ref{Target Selection}.
 2121: 
 2122: @item --preprocessor @var{program}
 2123: @code{windres}が@code{rc}ファイルを読み込むとき,それは最初にCプリプロセッ
 2124: サを通じて実行されます.このオプションは,使用するプリプロセッサを使用す
 2125: るために,利用することができ,それには引数を前置するものを含みます.デフォ
 2126: ルトのプリプロセッサ引数は,@code{gcc -E -xc-header -DRC_INVOKED}です.
 2127: 
 2128: @item --include-dir @var{directory}
 2129: @code{rc}ファイルを読み込むとき使用する,インクルードディレクトリを指定
 2130: します.@code{windres}は,これを@code{-I}オプションとしてプリプロセッサ
 2131: に渡します.@code{windres}は,@code{rc}ファイルで指名されているファイル
 2132: を探すとき,このディレクトリの検索も行います.
 2133: 
 2134: @item -D @var{target}
 2135: @itemx --define @var{sym}[=@var{val}]
 2136: @code{rc}ファイルを読み込むとき,プリプロセッサに渡す@code{-D}オプション
 2137: を指定します.
 2138: 
 2139: @item -v
 2140: 冗長モードを可能にします.これは,プリプロセッサが指定されていない場合,
 2141: そのプリプロセッサを報告します.
 2142: 
 2143: @item --language @var{val}
 2144: @code{rc}ファイルを読み込むとき使用する,デフォルトの言語を指定します.
 2145: @var{val}は16進数の言語コードにする必要があります.下位8ビットは言語で,
 2146: 上位8ビットはサブ言語です.
 2147: 
 2148: @item --use-temp-file
 2149: プリプロセッサの出力を読み込むためpopenを使用する代わりに,一時ファイル
 2150: を使用します.popenの実装がバグの多いホストの場合,このオプションを使用
 2151: してください(例えば,ある非英語バージョンのWindows95とWindows98は,出力
 2152: がコンソールでないところでは,バグの多いpopenとなっていることが知られて
 2153: います).
 2154: 
 2155: @item --no-use-temp-file
 2156: プリプロセッサの出力を読み込むため,一時ファイルではなくpopenを使用しま
 2157: す.これはデフォルトの動作です.
 2158: 
 2159: @item --help
 2160: 使用方法の概要を出力します.
 2161: 
 2162: @item --version
 2163: @code{windres}のバージョンナンバーを出力します.
 2164: 
 2165: @item --yydebug
 2166: @code{windres}が@code{YYDEBUG}を@code{1}と定義してコンパイルされる場合,
 2167: パーサデバッグを開始します.
 2168: @end table
 2169: 
 2170: 
 2171: @node dlltool
 2172: @chapter DLLを構築し使用するのに必要なファイルの作成
 2173: @cindex DLL
 2174: @kindex dlltool
 2175: 
 2176: ダイナミックリンクライブラリ(DLL)を構築し使用するのに必要なファイルを作
 2177: 成するために,@code{dlltool}は使用されます.
 2178: 
 2179: @quotation
 2180: @emph{警告:} @code{dlltool}は,DLLをサポートするターゲットに対してのみ役
 2181: に立つので,常にバイナリユーティリティの一部として構築されるわけではあり
 2182: ません.
 2183: @end quotation
 2184: 
 2185: @smallexample
 2186: dlltool [-d|--input-def @var{def-file-name}]
 2187:         [-b|--base-file @var{base-file-name}]
 2188:         [-e|--output-exp @var{exports-file-name}]
 2189:         [-z|--output-def @var{def-file-name}]
 2190:         [-l|--output-lib @var{library-file-name}]        
 2191:         [--export-all-symbols] [--no-export-all-symbols]
 2192:         [--exclude-symbols @var{list}]
 2193:         [--no-default-excludes]
 2194:         [-S|--as @var{path-to-assembler}] [-f|--as-flags @var{options}]
 2195:         [-D|--dllname @var{name}] [-m|--machine @var{machine}]
 2196:         [-a|--add-indirect] [-U|--add-underscore] [-k|--kill-at]
 2197:         [-A|--add-stdcall-alias]
 2198:         [-x|--no-idata4] [-c|--no-idata5] [-i|--interwork]
 2199:         [-n|--nodelete] [-v|--verbose] [-h|--help] [-V|--version]
 2200:         [object-file @dots{}]
 2201: @end smallexample
 2202: 
 2203: @code{dlltool}は,その入力を読み込み,それは,コマンドラインで指定された
 2204: オブジェクトファイルと,@samp{-d}と@samp{-b}オプションから来ます.そして,
 2205: これらの入力を処理し,@samp{-e}オプションが指定されている場合は,エクス
 2206: ポートファイルを作成します.@samp{-l}オプションが指定されている場合は,
 2207: ライブラリファイルを作成し,@samp{-z}オプションが指定されている場合は,
 2208: defファイルを作成します.-e,-l,そして-zオプションのいずれか,またはす
 2209: べてを,@code{dlltool}の呼び出しに置くことが可能です.
 2210: 
 2211: DLLを作成しているとき,DLLのソースファイルとともに,それは3つの他のファ
 2212: イルが必要です.@code{dlltool}は,これらのファイルの作成を手助けすること
 2213: が可能です.
 2214: 
 2215: 最初のファイルは,DLLからエクスポートされる関数や,DLLがインポートする関
 2216: 数等を指定する,@file{.def}ファイルです.これはテキストファイルで,手動
 2217: で作成したり,作成するために@code{dlltool}を@samp{-z}オプションを用いて
 2218: 使用したりできます.この場合,@code{dlltool}は,エクスポートされるように
 2219: 特別に印の付けられたこれらの関数を探しながら,コマンドラインで指定された
 2220: オブジェクトファイルを走査し,作成する@file{.def}ファイルにそれらの項目
 2221: を書き出します.
 2222: 
 2223: DLLからエクスポートされるように関数に印を付けるため,オブジェクトファイ
 2224: ルの@samp{.drectve}セクションに,@samp{-export:<name_of_function>}項目が
 2225: 必要です.これは,Cでasm()演算子を使用することで可能となります.
 2226: 
 2227: @smallexample
 2228:   asm (".section .drectve");  
 2229:   asm (".ascii \"-export:my_func\"");
 2230: 
 2231:   int my_func (void) @{ @dots{} @}
 2232: @end smallexample
 2233: 
 2234: DLLの作成に必要とされる2番目のファイルは,エクスポートファイルです.この
 2235: ファイルは,DLL本体を作成し,DLLと外部世界の間のインターフェースを取り扱
 2236: うオブジェクトファイルとリンクされます.これはバイナリファイルで,
 2237: @code{dlltool}が@file{.def}ファイルの作成または読み込みをしている時に,
 2238: それに@samp{-e}オプションを与えると作成されます.
 2239: 
 2240: DLLの作成に必要とされる3番目のファイルは,DLL内の関数にアクセスするため
 2241: にプログラムとリンクするライブラリファイルです.このファイルは,
 2242: @code{dlltool}が@file{.def}ファイルの作成または読み込みをしている時に,
 2243: それに@samp{-l}オプションを与えると作成されます.
 2244: 
 2245: @code{dlltool}は,手動でライブラリファイルを構築しますが,それは,アセン
 2246: ブラ宣言を含む一時ファイルを作成し,それをアセンブルすることで,エクスポー
 2247: トファイルを構築します.@samp{-S}コマンドラインオプションは,
 2248: @code{dlltool}が使用するアセンブラへのパスを指定するため使用可能で,
 2249: @samp{-f}オプションは,そのアセンブラに特別なフラグを渡すために使用可能
 2250: です.@samp{-n}は,@code{dlltool}がこれらの一時的なアセンブラファイルを
 2251: 終了後に削除することを防ぐために使用可能で,@samp{-n}が2回指定されている
 2252: 場合は,@code{dlltool}がライブラリを構築するために使用した,一時的なオブ
 2253: ジェクトファイルを削除することを防ぎます.
 2254: 
 2255: ここに,ソースファイル@samp{dll.c}からDLLを作成し,そのDLLを使用している
 2256: プログラムも(@samp{program.o}という名前のオブジェクトファイルから)作成し
 2257: ている例があります.
 2258: 
 2259: @smallexample
 2260:   gcc -c dll.c
 2261:   dlltool -e exports.o -l dll.lib dll.o
 2262:   gcc dll.o exports.o -o dll.dll
 2263:   gcc program.o dll.lib -o program
 2264: @end smallexample
 2265: 
 2266: コマンドラインオプションは以下の意味があります.
 2267: 
 2268: @table @code
 2269: 
 2270: @item -d @var{filename}
 2271: @itemx --input-def @var{filename}
 2272: @cindex input .def file
 2273: 読み込み,処理する@file{.def}ファイルの名前を指定します.
 2274: 
 2275: @item -b @var{filename}
 2276: @itemx --base-file @var{filename}
 2277: @cindex base files
 2278: 読み込み,処理するベースファイルの名前を指定します.このファイルの内容に,
 2279: @code{dlltool}で生成されるエクスポートファイルの,リロケーションセクショ
 2280: ンが追加されます.
 2281: 
 2282: @item -e @var{filename}
 2283: @itemx --output-exp @var{filename}
 2284: @code{dlltool}で作成される,エクスポートファイルの名前を指定します.
 2285: 
 2286: @item -z @var{filename}
 2287: @itemx --output-def @var{filename}
 2288: @code{dlltool}で作成される,@file{.def}ファイルの名前を指定します.
 2289: 
 2290: @item -l @var{filename}
 2291: @itemx --output-lib @var{filename}
 2292: @code{dlltool}で作成される,ライブラリファイルの名前を指定します.
 2293: 
 2294: @item --export-all-symbols
 2295: 入力ファイル内のエクスポートされるシンボルとして見つかったものは,すべて
 2296: 大域的に弱く定義されているシンボルとして扱います.これらは,デフォルトで
 2297: エクスポートされないシンボルの小さなリストです.
 2298: @code{--no-default-excludes}オプションを参照してください.
 2299: @code{--exclude-symbols}オプションを使用して,エクスポートされないシンボ
 2300: ルのリストを追加することが可能です.
 2301: 
 2302: @item --no-export-all-symbols
 2303: 入力の@file{.def}ファイルや入力オブジェクトファイルの@samp{.drectve}セク
 2304: ションで,明示的にリストアップされているシンボルのみエクスポートします.
 2305: @samp{.drectve}は,ソースコード内の@samp{dllexport}属性で作成されます.
 2306: 
 2307: @item --exclude-symbols @var{list}
 2308: @var{list}内のシンボルをエクスポートしません.これは,カンマまたはコロン
 2309: 文字で分けられた,シンボル名のリストです.シンボル名に,アンダースコアの
 2310: 前置を含めることはできません.これは,@code{--export-all-symbols}が使用
 2311: されているときのみ意味があります.
 2312: 
 2313: @item --no-default-excludes
 2314: @code{--export-all-symbols}が使用されているとき,それはデフォルトで,あ
 2315: る特別なシンボルをエクスポートすることを避けます.現在のエクスポートを避
 2316: けるリストは,@samp{DllMain@@12}, @samp{DllEntryPoint@@0},
 2317: @samp{impure_ptr}です.これらの特別なシンボルを進んでエクスポートするた
 2318: めに,@code{--no-default-excludes}オプションを使用することが可能です.こ
 2319: れは,@code{--export-all-symbols}が使用されているときのみ意味があります.
 2320: 
 2321: @item -S @var{path}
 2322: @itemx --as @var{path}
 2323: エクスポートファイルを作成するために使用するアセンブラの,ファイル名を含
 2324: む,パスを指定します.
 2325: 
 2326: @item -f @var{switches}
 2327: @itemx --as-flags @var{switches}
 2328: エクスポートファイルを構築しているときアセンブラに渡す,あらゆる特別なコ
 2329: マンドラインスイッチを指定します.このオプションは,@samp{-S}が指定され
 2330: ていないかのように動作します.このオプションは1つの引数のみ渡し,コマン
 2331: ドラインに1回以上出現する場合,最後に出現したもので,前に出現したものに
 2332: 優先させます.そのため,複数のスイッチをアセンブラに渡す必要がある場合は,
 2333: 二重引用符で囲む必要があります.
 2334: 
 2335: @item -D @var{name}
 2336: @itemx --dll-name @var{name}
 2337: @samp{-e}オプションが使用されてるとき,DLLの名前として@file{.def}ファイ
 2338: ルに保存する名前を指定します.このオプションがない場合,@samp{-e}オプショ
 2339: ンで与えられるファイル名は,DLLの名前として使用されます.
 2340: 
 2341: @item -m @var{machine}
 2342: @itemx -machine @var{machine}
 2343: ライブラリファイルが構築されるマシンの形式を指定します.@code{dlltool}に
 2344: は,構築のされ方に依存するデフォルト形式がありますが,このオプションで,
 2345: それに優先させることが可能です.これは通常,ARMプロセッサに対するDLLを作
 2346: 成するときのみ役に立ち,DLLの内容は,実際にTHUMB(機械語)命令を使用して符
 2347: 号化されます.
 2348: 
 2349: @item -a
 2350: @itemx --add-indirect
 2351: @code{dlltool}がエクスポートファイルを作成しているとき,エクスポート関数
 2352: がインポートライブラリを使用しないで参照できるように,セクションを加える
 2353: ことを指定します.たとえ,それが地獄を意味しようとも!
 2354: 
 2355: @item -U
 2356: @itemx --add-underscore
 2357: @code{dlltool}エクスポートファイルを作成しているとき,エクスポート関数の
 2358: 名前にアンダースコアを前置することを指定します.
 2359: 
 2360: @item -k
 2361: @itemx --kill-at
 2362: @code{dlltool}エクスポートファイルを作成しているとき,文字列@samp{@@
 2363: <number>}を追加しないことを指定します.これらの数字は,序数と呼ばれ,DLL
 2364: では関数にアクセスする1つの方法を表示し,それ以外では名前で表示します.
 2365: 
 2366: @item -A
 2367: @itemx --add-stdcall-alias
 2368: @code{dlltool}がエクスポートファイルを作成しているとき,シンボルに
 2369: @samp{@@ <number>}を追加したものを,@samp{@@ <number>}なしでstdcallシン
 2370: ボルの別名を加えることを指定します.
 2371: 
 2372: @item -x
 2373: @itemx --no-idata4
 2374: @code{dlltool}エクスポートファイルとライブラリファイルを作成しているとき,
 2375: .idata4セクションを削除することを指定します.これは,あるオペレーティング
 2376: システムとの互換性のためです.
 2377: 
 2378: @item -c
 2379: @itemx --no-idata5
 2380: @code{dlltool}エクスポートファイルとライブラリファイルを作成しているとき,
 2381: .idata5セクションを削除することを指定します.これは,あるオペレーティング
 2382: システムとの互換性のためです.
 2383: 
 2384: @item -i
 2385: @itemx --interwork
 2386: @code{dlltool}が,生成しているライブラリファイルとエクスポートファイル内
 2387: のオブジェクトに,ARMとTHUMB間での相互動作をサポートするように印を付ける
 2388: ことを指定します.
 2389: 
 2390: @item -n
 2391: @itemx --nodelete
 2392: @code{dlltool}は,エクスポートファイルを作成するために使用した一時的なア
 2393: センブラファイルを保存します.このオプションが繰り返される場合,
 2394: @code{dlltool}は,ライブラリを作成するために使用する一時的なオブジェクト
 2395: ファイルも保存します.
 2396: 
 2397: @item -v
 2398: @itemx --verbose
 2399: @code{dlltool}は,行っていることを記述します.
 2400: 
 2401: @item -h
 2402: @itemx --help
 2403: コマンドラインオプションのリストを表示し終了します.
 2404: 
 2405: @item -V
 2406: @itemx --version
 2407: @code{dlltool}のバージョンナンバーを表示し終了します.
 2408: @end table
 2409: 
 2410: 
 2411: @node readelf
 2412: @chapter readelf
 2413: 
 2414: @cindex ELF file information
 2415: @kindex readelf
 2416: 
 2417: @smallexample
 2418: readelf [ -a | --all ] 
 2419:         [ -h | --file-header]
 2420:         [ -l | --program-headers | --segments]
 2421:         [ -S | --section-headers | --sections]
 2422:         [ -e | --headers]
 2423:         [ -s | --syms | --symbols]
 2424:         [ -n | --notes]
 2425:         [ -r | --relocs]
 2426:         [ -d | --dynamic]
 2427:         [ -V | --version-info]
 2428:         [ -D | --use-dynamic]
 2429:         [ -x <number> | --hex-dump=<number>]
 2430:         [ -w[liapr] | --debug-dump[=info,=line,=abbrev,=pubnames,=ranges]]
 2431:         [      --histogram]
 2432:         [ -v | --version]
 2433:         [ -H | --help]
 2434:         @var{elffile}@dots{}
 2435: @end smallexample
 2436: 
 2437: @code{readelf}は,1つ以上のELF書式のオブジェクトファイルの情報を表示しま
 2438: す.オプションで表示する特定の情報を制御します.
 2439: 
 2440: @var{elffile}@dots{}は調査するオブジェクトファイルです.現在は,
 2441: @code{readelf}は,アーカイブの調査のサポートも,64ビットELFファイルのサ
 2442: ポートもありません.
 2443: 
 2444: ここで交互に表示されている,オプションの長い形式と短い形式は等価です.
 2445: @samp{-v}または@samp{-H}の他に,少なくとも1つのオプションを与える必要が
 2446: あります.
 2447: 
 2448: @table @code
 2449: @item -a
 2450: @itemx --all
 2451: @samp{--file-header},@samp{--program-headers},@samp{--sections},
 2452: @samp{--symbols},@samp{--relocs},@samp{--dynamic},@samp{--notes},そ
 2453: して@samp{--version-info}を指定することと等価です.
 2454: 
 2455: @item -h
 2456: @itemx --file-header
 2457: @cindex ELF file header information
 2458: ファイルの最初のELFヘッダ内に含まれる情報を表示します.
 2459: 
 2460: @item -l
 2461: @itemx --program-headers
 2462: @itemx --segments
 2463: @cindex ELF program header information
 2464: @cindex ELF segment information
 2465: ファイルのセグメントヘッダ内に含まれる情報を,存在する場合は表示します.
 2466: 
 2467: @item -S
 2468: @itemx --sections
 2469: @itemx --section-headers
 2470: @cindex ELF section information
 2471: ファイルのセクションヘッダ内に含まれる情報を,存在する場合は表示します.
 2472: 
 2473: @item -s
 2474: @itemx --symbols
 2475: @itemx --syms
 2476: @cindex ELF symbol table information
 2477: ファイルのシンボルテーブルセクション内の項目を,存在する場合は表示します.
 2478: 
 2479: @item -e
 2480: @itemx --headers
 2481: ファイルのすべてのヘッダを表示します.@samp{-h -l -S}と等価です.
 2482: 
 2483: @item -n
 2484: @itemx --notes
 2485: @cindex ELF core notes
 2486: NOTEセグメントの内容を,存在する場合は表示します.
 2487: 
 2488: @item -r
 2489: @itemx --relocs
 2490: @cindex ELF reloc information
 2491: ファイルのリロケーションセクションの内容を,存在する場合は表示します.
 2492: 
 2493: @item -d
 2494: @itemx --dynamic
 2495: @cindex ELF dynamic section information
 2496: ファイルの動的セクションの内容を,存在する場合は表示します.
 2497: 
 2498: @item -V
 2499: @itemx --version-info
 2500: @cindex ELF version sections informations
 2501: ファイルのバージョンセクションの内容を,存在する場合は表示します.
 2502: 
 2503: @item -D
 2504: @itemx --use-dynamic
 2505: シンボルを表示しているとき,@code{readelf}はこのオプションで,ファイルの
 2506: シンボルセクションではなく,動的セクションのシンボルテーブルを使用します.
 2507: 
 2508: @item -x <number>
 2509: @itemx --hex-dump=<number>
 2510: 16進のダンプとして示されているセクションの内容を表示します.
 2511: 
 2512: @item -w[liapr]
 2513: @itemx --debug-dump[=line,=info,=abbrev,=pubnames,=ranges]
 2514: ファイルのデバッグセクションの内容を,存在する場合は表示します.オプショ
 2515: ン文字や単語の1つがスイッチに続く場合,これらで指定されたセクションで見
 2516: つかるデータのみダンプされます.
 2517: 
 2518: @item --histogram
 2519: シンボルテーブルの内容を表示するとき,バケットリスト長のヒストグラムを表
 2520: 示します.
 2521: 
 2522: @item -v
 2523: @itemx --version
 2524: @code{readelf}のバージョンナンバーを表示します.
 2525: 
 2526: @item -H
 2527: @itemx --help
 2528: @code{readelf}が理解するコマンドラインオプションを表示します.
 2529: @end table
 2530: 
 2531: 
 2532: @node Selecting The Target System
 2533: @chapter ターゲットシステムの選択
 2534: 
 2535: ターゲットシステムの3つの側面を,@sc{gnu}バイナリファイルユーティリティ
 2536: に,それぞれ異なる方法で指定することが可能です.
 2537: 
 2538: @itemize @bullet
 2539: @item
 2540: ターゲット
 2541: @item
 2542: アーキテクチャ
 2543: @item
 2544: リンカエミュレーション(リンカのみ適用されます)
 2545: @end itemize
 2546: 
 2547: 以下の概要では,変数を指定する方法のリストは,優先順位が下がる順序となっ
 2548: ています.方法は,最初のものがそれ以降のものに優先するようにリストアップ
 2549: されています.
 2550: 
 2551: 有効な値をリストアップするコマンドは,実行しているプログラムに設定されて
 2552: いる値のみリストアップします.それらが@samp{--enable-targets=all}で設定
 2553: されている場合,ほとんどの利用可能なコマンドはリストアップされますが,い
 2554: くつかはそうなりません.ターゲットには@dfn{native} (ターゲットシステムと
 2555: 同じ形式のホスト) に設定することしかできないものもあるので,すべてのもの
 2556: が一度に設定できるわけではありません.
 2557: 
 2558: @menu
 2559: * Target Selection::            
 2560: * Architecture Selection::      
 2561: * Linker Emulation Selection::  
 2562: @end menu
 2563: 
 2564: @node Target Selection
 2565: @section ターゲットの選択
 2566: 
 2567: @dfn{ターゲット}はオブジェクトファイルの書式です.与えられたターゲットは,
 2568: 複数のアーキテクチャでサポートされるかもしれません(@pxref{Architecture
 2569: Selection}).ターゲットの選択は,オペレーティングシステムやアーキテクチャ
 2570: によっても,変化があるかもしれません.
 2571: 
 2572: 有効なターゲットの値をリストアップするコマンドは,@samp{objdump -i}です
 2573: (出力の最初の列は,関連した情報を含みます).
 2574: 
 2575: サンプルの値は以下のとおりです.@samp{a.out-hp300bsd},
 2576: @samp{ecoff-littlemips},@samp{a.out-sunos-big}.
 2577: 
 2578: 3項目の設定を使用してターゲットを指定することもできます.これは,ターゲッ
 2579: トを指定するために@file{configure}に渡す名前と同種です.3項目の設定を引
 2580: 数として使用するとき,それを完全に標準のものにする必要があります.ソース
 2581: に含まれるシェルスクリプト@file{config.sub}を実行することで,3項目の標準
 2582: 的なバージョンを知ることが可能です.
 2583: 
 2584: サンプルの値は以下のとおりです.@samp{m68k-hp-bsd},
 2585: @samp{mips-dec-ultrix},@samp{sparc-sun-sunos}.
 2586: 
 2587: @subheading @code{objdump}のターゲット
 2588: 
 2589: 指定方法:
 2590: 
 2591: @enumerate
 2592: @item
 2593: コマンドラインオプション:@samp{-b}または@samp{--target}
 2594: 
 2595: @item
 2596: 環境変数@code{GNUTARGET}
 2597: 
 2598: @item
 2599: 入力ファイルから推測
 2600: @end enumerate
 2601: 
 2602: @subheading @code{objcopy}と@code{strip}の入力ターゲット
 2603: 
 2604: 指定方法:
 2605: 
 2606: @enumerate
 2607: @item
 2608: コマンドラインオプション:@samp{-I}または@samp{--input-target},もしくは,
 2609: @samp{-F}または@samp{--target}
 2610: 
 2611: @item
 2612: 環境変数@code{GNUTARGET}
 2613: 
 2614: @item
 2615: 入力ファイルから推測
 2616: @end enumerate
 2617: 
 2618: @subheading @code{objcopy}と@code{strip}の出力ターゲット
 2619: 
 2620: 指定方法:
 2621: 
 2622: @enumerate
 2623: @item
 2624: コマンドラインオプション:@samp{-O}または@samp{--output-target},もしく
 2625: は,@samp{-F}または@samp{--target}
 2626: 
 2627: @item
 2628: 入力ターゲット(上記の``@code{objcopy}と@code{strip}の入力ターゲット''を
 2629: 参照してください)
 2630: 
 2631: @item
 2632: 環境変数@code{GNUTARGET}
 2633: 
 2634: @item
 2635: 入力ファイルから推測
 2636: @end enumerate
 2637: 
 2638: @subheading @code{nm},@code{size},そして@code{strings}のターゲット
 2639: 
 2640: 指定方法:
 2641: 
 2642: @enumerate
 2643: @item
 2644: コマンドラインオプション:@samp{--target}
 2645: 
 2646: @item
 2647: 環境変数@code{GNUTARGET}
 2648: 
 2649: @item
 2650: 入力ファイルから推測
 2651: @end enumerate
 2652: 
 2653: @subheading リンカ入力ターゲット
 2654: 
 2655: 指定方法:
 2656: 
 2657: @enumerate
 2658: @item
 2659: コマンドラインオプション:@samp{-b}または@samp{--format}
 2660: (@pxref{Options,,Options,ld.info,Using LD})
 2661: 
 2662: @item
 2663: スクリプトコマンド@code{TARGET} (@pxref{Option Commands,,Option
 2664: Commands,ld.info,Using LD})
 2665: 
 2666: @item
 2667: 環境変数@code{GNUTARGET} (@pxref{Environment,,Environment,ld.info,Using
 2668: LD})
 2669: 
 2670: @item
 2671: リンカエミュレーションで選択されたデフォルトターゲット
 2672: (@pxref{Linker Emulation Selection})
 2673: @end enumerate
 2674: 
 2675: @subheading リンカ出力ターゲット
 2676: 
 2677: 指定方法:
 2678: 
 2679: @enumerate
 2680: @item
 2681: コマンドラインオプション:@samp{-oformat}
 2682: (@pxref{Options,,Options,ld.info,Using LD})
 2683: 
 2684: @item
 2685: スクリプトコマンド@code{OUTPUT_FORMAT}
 2686: (@pxref{Option Commands,,Option Commands,ld.info,Using LD})
 2687: 
 2688: @item
 2689: リンカ入力ターゲット(上記の``リンカ入力ターゲット''を参照してください)
 2690: @end enumerate
 2691: 
 2692: @node Architecture Selection
 2693: @section アーキテクチャの選択
 2694: 
 2695: @dfn{アーキテクチャ}は,オブジェクトファイルを実行する@sc{cpu}の型式です.
 2696: その名前は,コロンを含めることができ,それは特定の@sc{cpu}とプロセッサファ
 2697: ミリーの名前を分けます.
 2698: 
 2699: 有効なアーキテクチャの値をリストアップするコマンドは,@samp{objdump -i}
 2700: です(2番目のコロンは,関連する情報を含みます)
 2701: 
 2702: サンプルの値です.@samp{m68k:68020},@samp{mips:3000},@samp{sparc}.
 2703: 
 2704: @subheading @code{objdump}アーキテクチャ
 2705: 
 2706: 指定方法:
 2707: 
 2708: @enumerate
 2709: @item
 2710: コマンドラインオプション:@samp{-m}または@samp{--architecture}
 2711: @item
 2712: 入力ファイルから推測
 2713: @end enumerate
 2714: 
 2715: @subheading @code{objcopy},@code{nm},@code{size},@code{strings}のアーキテクチャ
 2716: 
 2717: 指定方法:
 2718: 
 2719: @enumerate
 2720: @item
 2721: 入力ファイルから推測
 2722: @end enumerate
 2723: 
 2724: @subheading リンカの入力アーキテクチャ
 2725: 
 2726: 指定方法:
 2727: 
 2728: @enumerate
 2729: @item
 2730: 入力ファイルから推測
 2731: @end enumerate
 2732: 
 2733: @subheading リンカの出力アーキテクチャ
 2734: 
 2735: 指定方法:
 2736: 
 2737: @enumerate
 2738: @item
 2739: スクリプトコマンド@code{OUTPUT_ARCH}
 2740: (@pxref{Option Commands,,Option Commands,ld.info,Using LD})
 2741: 
 2742: @item
 2743: リンカの出力ターゲットのデフォルトアーキテクチャ(@pxref{Target
 2744: Selection})
 2745: @end enumerate
 2746: 
 2747: 
 2748: @node Linker Emulation Selection
 2749: @section リンカエミュレーションの選択
 2750: 
 2751: リンカ@dfn{エミュレーション}は,リンカの``個性''で,それはターゲットシス
 2752: テムのそれ以外の側面に対するリンカのデフォルト値を与えます.特に以下から
 2753: 成り立ちます.
 2754: 
 2755: @itemize @bullet
 2756: @item
 2757: リンカスクリプト
 2758: 
 2759: @item
 2760: ターゲット
 2761: 
 2762: @item
 2763: いくつかのターゲットが要求する特別なことを行うために,リンクプロセスの特
 2764: 定のステージで実行されるいくつかの``フック''関数.
 2765: @end itemize
 2766: 
 2767: 有効なリンカエミュレーションの値をリストアップするコマンドは,@samp{ld
 2768: -V}です.
 2769: 
 2770: サンプルの値は以下のとおりです.@samp{hp300bsd},@samp{mipslit},
 2771: @samp{sun4}.
 2772: 
 2773: 指定方法:
 2774: 
 2775: @enumerate
 2776: @item
 2777: コマンドラインオプション:@samp{-m}
 2778: (@pxref{Options,,Options,ld.info,Using LD})
 2779: 
 2780: @item
 2781: 環境変数@code{LDEMULATION}
 2782: 
 2783: @item
 2784: @file{Makefile}でコンパイル時に組み込まれた@code{DEFAULT_EMULATION}で,
 2785: それは@file{config/@var{target}.mt}の@code{EMUL}に由来する.
 2786: @end enumerate
 2787: 
 2788: 
 2789: @node Reporting Bugs
 2790: @chapter バグの報告
 2791: @cindex bugs
 2792: @cindex reporting bugs
 2793: 
 2794: バグの報告は,バイナリユーティリティを確実にする上で重要な役割を果たしま
 2795: す.
 2796: 
 2797: バグを報告することで,問題の解決をもたらすかもしれませんが,そうでないか
 2798: もしれません.しかし,いずれにせよ,バグの報告の主な機能は,バイナリユー
 2799: ティリティの次のバージョンの仕事をより良くすることで,全てのコミュニティ
 2800: に役立つことです.バグの報告は,管理者に対する貢献になります.
 2801: 
 2802: バグの報告を目的に役立つようにするため,バグの修正が可能となるような情報
 2803: を含める必要があります.
 2804: 
 2805: @menu
 2806: * Bug Criteria::                Have you found a bug?
 2807: * Bug Reporting::               How to report bugs
 2808: @end menu
 2809: 
 2810: @node Bug Criteria
 2811: @section バグを見つけましたか?
 2812: @cindex bug criteria
 2813: 
 2814: バグを見つけたかどうか確実でない場合,ここに指針がいくつかあります.
 2815: 
 2816: @itemize @bullet
 2817: @cindex fatal signal
 2818: @cindex crash
 2819: @item
 2820: バイナリユーティリティが,入力によらず,致命的なシグナルを得た場合,それ
 2821: はバグです.信頼できるユーティリティは決して壊れません.
 2822: 
 2823: @cindex error on valid input
 2824: @item
 2825: バイナリユーティリティが有効な入力に対しエラーメッセージを生成した場合,
 2826: それはバグです.
 2827: 
 2828: @item
 2829: バイナリユーティリティの経験豊かなユーザの場合,改良のための提案はいつで
 2830: も歓迎します.
 2831: @end itemize
 2832: 
 2833: @node Bug Reporting
 2834: @section バグの報告の仕方
 2835: @cindex bug reports
 2836: @cindex bugs, reporting
 2837: 
 2838: 多くの企業と個人が,@sc{gnu}製品に対してサポートを提供しています.サポー
 2839: ト組織からバイナリユーティリティを得ている場合,われわれは,その組織に最
 2840: 初に連絡するように勧めます.
 2841: 
 2842: @sc{gnu} Emacs配布物のファイル@file{etc/SERVICE}で,サポートしている多く
 2843: の会社と個人へ連絡する情報を見つけることが可能です.
 2844: 
 2845: いずれにせよ,我々は,バイナリユーティリティに対するバグの報告を
 2846: @samp{bug-gnu-utils@@gnu.org}にも送ることを勧めます.
 2847: 
 2848: バグの報告の有効な基本原理は以下のとおりです.@strong{すべての事実を報告
 2849: する}.事実を述べるべきか削除すべきかよく分からない場合,それを述べてく
 2850: ださい!
 2851: 
 2852: 人々はよく,問題を発生させるものを知っていて,重要でない詳細もあると思う
 2853: ため,事実を省略します.このため,使用したファイル名は重要でないと考えた
 2854: とします.さて,おそらくそうでしょうが,確実ではありません.おそらくバグ
 2855: は,パス名がメモリに保存されている場所から取り出すために生じる,偶然のメ
 2856: モリ参照です.おそらく,パス名が異なっている場合,その場所の内容は,バグ
 2857: にもかかわらず正しいことを行うユーティリティを馬鹿にするでしょう.安全に
 2858: 動作するようにし,特定の完全な例を与えてください.それは,最も簡単に行え
 2859: 最も役に立ちます.
 2860: 
 2861: バグの報告の目的が,新しいものの場合は,バグの修正を可能にすることだとい
 2862: うことを覚えておいてください.そのため,以前にバグが報告されていないこと
 2863: を常に前提にして,バグの報告を書いてください.
 2864: 
 2865: ときどき,概略だけのわずかな事実を与え,``これはベルを鳴しますか? (Does
 2866: this ring a bell?)と尋ねる人がいます.これらのバグの報告は役に立たず,正
 2867: しくバグの報告をするよう送付者に小言を言うために,@emph{それに対する返答
 2868: を廃棄するように}ということを,我々は全員に勧めます.
 2869: 
 2870: バグの修正を可能とするため,これらすべてのものを含めるべきです.
 2871: 
 2872: @itemize @bullet
 2873: @item
 2874: ユーティリティのバージョン.それぞれのバージョンは,@samp{--version}引数
 2875: で解した場合,それを報告します.
 2876: 
 2877: これがなければ,我々はバイナリユーティリティの現在のバージョンにバグを探
 2878: す場所があるかどうか分かりません.
 2879: 
 2880: @item
 2881: @code{BFD}ライブラリを作るために与えたパッチを含む,ソースに適用したあら
 2882: ゆるパッチ.
 2883: 
 2884: @item
 2885: 使用しているマシンの形式と,オペレーティングシステム名とバージョンナン
 2886: バー.
 2887: 
 2888: @item
 2889: ユーティリティをコンパイルするとき使用したコンパイラ(とバージョン)---例
 2890: えば,``@code{gcc-2.7}''.
 2891: 
 2892: @item
 2893: バグを観測するためにユーティリティに与えたコマンド引数.重要なものを省略
 2894: しないことを保証するため,すべてをリストアップしてください.Makefile (ま
 2895: たはmakeの出力)のコピーで十分です.
 2896: 
 2897: 我々が引数を推測しようとした場合,おそらく間違ったものを推測し,バグに遭
 2898: 遇しない可能性があります.
 2899: 
 2900: @item
 2901: 完全な入力ファイルまたは入力ファイルの組で,実際のオブジェクトファイルを
 2902: 送ることは,最も役に立ち,バグがあればuuencodeしてください.ユーティリティ
 2903: がオブジェクトファイルやファイルを読み込んでいる場合,それをメールシステ
 2904: ムに通過させる場合必要です.@samp{bug-gnu-utils@@gnu.org}はメーリングリ
 2905: ストなので,非常に大きなファイルをそこに送ることは避けるよう注意してくだ
 2906: さい.ファイルをanonymous FTPで利用可能にするとOKです.
 2907: 
 2908: ソースファイルが@sc{gnu}プログラム(例えば,@code{gcc},@code{gas},そし
 2909: て/または,@sc{gnu} @code{ld})を使用して生成されたことが明らかな場合,オ
 2910: ブジェクトファイルよりソースファイルを送ることでOKです.この場合,
 2911: @code{gcc}や,それらオブジェクトファイルを生成するために使用したあらゆる
 2912: もののバージョンを正確に確実に伝えてください.@code{gcc}や,それらあらゆ
 2913: るもののコンフィグレーションの方法も伝えてください.
 2914: 
 2915: @item
 2916: 適当でないと確信することになった動作の記述.例えば,``致命的なシグナルを
 2917: 得た''.
 2918: 
 2919: もちろん,バグはユーティリティが致命的なシグナルを得た場合,我々はきっと
 2920: そこに注目します.しかし,バグが不適切な出力の場合,我々は,明らかに間違っ
 2921: ていない限り注目しないかもしれません.我々が間違う機会を与えない方がよい
 2922: でしょう.
 2923: 
 2924: 遭遇した問題が致命的なシグナルの場合でさえ,それを明確に伝えるべきです.
 2925: ユーティリティのコピーが同期化されていない,または,システムのCライブラ
 2926: リのバグに遭遇したといった,おそらく何か変なことが生じています.(それは
 2927: 発生したのです!) コピーは壊れていて,我々のはそうでないかもしれません.
 2928: 壊れることを期待していると我々に告げ,我々が壊すことに失敗した場合,我々
 2929: にバグは発生しないことを知るでしょう.壊れることを期待していると我々に告
 2930: げない場合,我々は自分達の観測から全く結論が得られないでしょう.
 2931: 
 2932: @item
 2933: ソースの変更を提案したい場合,@samp{-u},@samp{-c},または@samp{-p}オプ
 2934: ションを用いた@code{diff}で生成したような,コンテクストのdiffを我々に送っ
 2935: てください.古いファイルから新しいファイルへのdiffを,常に送ってください.
 2936: @code{ld}のソースについて何か議論したい場合,行番号ではなくコンテクスト
 2937: で参照してください.
 2938: 
 2939: 我々の開発ソース内の行番号は,あなた方のソースと一致しないでしょう.行番
 2940: 号は我々に全く情報をもたらしません.
 2941: @end itemize
 2942: 
 2943: ここに不要なものがあります.
 2944: 
 2945: @itemize @bullet
 2946: @item
 2947: バグの回りの説明.
 2948: 
 2949: バグに遭遇した人は,バグを無くす入力ファイルへの変更と,効果がない変更を
 2950: 調査するのに多くの時間を費やすことが多いです.
 2951: 
 2952: 我々がバグを見つける方法は,単純な例をブレークポイントを用いたデバッガで
 2953: 実行することで,それは一連の例から推測することではないので,これは役に立
 2954: たないことが多いです.我々は,他のことをすることを勧めます.
 2955: 
 2956: もちろん,報告するためのオリジナルの例@emph{ではなく},それより簡単な例
 2957: が見つかった場合,それはとても役立ちます.出力ファイルのエラーは,見つけ
 2958: るのがより簡単,デバッガの実行に余り時間がかからない,等々です.
 2959: 
 2960: しかし,簡略化は重要ではありません.こうしたくない場合,いい加減にバグを
 2961: 報告し,使用したテストケースを全て我々に送ってください.
 2962: 
 2963: @item
 2964: バグに対するパッチ.
 2965: 
 2966: バグに対するパッチは,それがいいものであれば我々は助かります.しかし,テ
 2967: ストケースのような,我々全員がパッチを必要だと推測するのに必要な情報を省
 2968: 略しないでください.我々は,パッチに関する問題が分かり,別の方法で問題を
 2969: 修正することに決めるかもしれませんし,全く理解できないかも知れません.
 2970: 
 2971: バイナリユーティリティと同じくらい複雑なプログラムを用いた場合,コードを
 2972: 通じて,プログラムに特定の手順をたどらせる例を構成することは,とても難し
 2973: いことです.例を我々に送らない場合,我々はそれを構成することができないの
 2974: で,我々はバグが修正されたかどうか検証することができません.
 2975: 
 2976: そして,あなたが修正しようとしたバグや,パッチの改良点を我々が理解できな
 2977: い場合や,我々はそれをインストールしないでしょう.テストケースは我々の理
 2978: 解を助けます.
 2979: 
 2980: @item
 2981: バグやそれが依存するものに関する推測.
 2982: 
 2983: そのような推測は,通常正しくありません.事実を見つけるために最初にデバッ
 2984: ガを使用しなければ,我々でも正しく推測できません.
 2985: @end itemize
 2986: 
 2987: 
 2988: @node Index
 2989: @unnumbered 索引
 2990: 
 2991: @printindex cp
 2992: 
 2993: @contents
 2994: @bye

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>