binutils

http://www.linux.or.jp/JF/JFdocs/LFS-BOOK/appendixa/binutils.html

addr2line はプログラムアドレスをファイル名と行番号に翻訳します。アドレスと実行ファイルの名前が与えられると、それは実行ファイルの中のデバッグ情報を使ってどのソースファイルと行番号がアドレスに対応するのかを探し出します。

ar はアーカイブを作り、修正し、またそこからファイルを引き出します。アーカイブは他のファイルを含んだ一つのファイルで元々の個別のファイル(アーカイブのメンバーと呼ばれる)を再び取り出すことができる構造をしています。

as はアセンブラです。これは gcc からの出力をオブジェクトファイルにアセンブルします。

c++filt はリンカによって使われ、関数名の衝突を避けるために台なし ( mangle ) にされた C++Java のシンボル名を元に戻す ( demangle ) ために使われます。

マングリングはコンパイラ依存。
nm で出てくるシンボル名を戻すことができる。

gprof はグラフ呼び出しプロファイル情報を表示します。

ld はリンカです。これは数多くのオブジェクトとアーカイブファイルを一つのファイルに結合し、それらのデータを再配置し、シンボルへの参照を結びつけます。

nm は与えられたオブジェクトファイルの中に存在するシンボルをリストします。

objcopy は一種類のオブジェクトファイルを他の種類に翻訳するのに使われます。

objdump は与えられたオブジェクトファイルについての情報を表示し、オプションによってどの特定の情報を表示するかを制御します。表示される情報はほとんどコンパイルのツールを作っているプログラマにだけ有用なものでしょう。

ranlib はアーカイブの内容の目録を生成し、それをアーカイブの中に保管します。この目録はリロケータブルなオブジェクトファイルであるアーカイブのすべてのメンバーによって定義されるシンボルのリストです。

readelf は elf タイプのバイナリについての情報を表示します。

size は与えられたオブジェクトファイルについて、セクションと包括的な全体のサイズをリストします。

strings は与えられたそれぞれのファイルについて、少なくとも特定の長さ(デフォルトでは4)の表示可能な文字の一続きを出力します。オブジェクトファイルに対してはデフォルトで初期化と読み出しのセクションからの文字列のみを表示します。その他の種類のファイルについてはそのファイル全体を調べます。

strip はオブジェクトファイルからシンボルを捨てます。

gcc -g でコンパイルしたオブジェクトファイル中のデバッグ情報を捨てることもできる。

libiberty は様々な GNU プログラムに使われる getopt や obstack, strerror, strtol, strtoul などのルーチンを含みます。

libbfd はバイナリファイルデスクリプタのライブラリです。

libopcodes は opcode を扱うためのライブラリです。これは objdump などのユーティリティを構築するために使われます。 Opcode は "人に読める文章" 版のプロセッサへの説明です。