GNU Binutilsまたはbinutilsは、さまざまなオブジェクトフォーマットを含むオブジェクトファイルを扱うためのプログラミングツールである。わかりやすくいうと、GNUが提供しているツールのうち、バイナリのプログラミングを実装するためのツールであり伊藤剛浩・川田裕貴『独自CPUで学ぶコンピュータの仕組み』、2016年3月20日 第1版 第1刷 発行、237ページ、そのためクロスアセンブラとして活用できる。現在のバージョンは、シグナスソリューションズ(レッドハットに買収された)によってBFDライブラリを使用して書かれた。binutilsの典型的な使われ方は、GCC、make、GDBなどの補助である。
コマンド binutilsは以下のコマンドを含む: addr2line - プログラム内のアドレスをファイル名と行番号に変換する ar - アーカイブの作成、変更、および展開 as - GNUアセンブラ c++filt - C++シンボルのデマングルを行う dwp - DWARF パッケージングユーティリティ elfedit - ELFファイルのヘッダとプログラムプロパティの編集 gold - ELFファイル用代替リンカ gprof - C、Pascal、Fortran77プログラムの実行プロファイルを取得 gprofng - Gprof Next Generation; パフォーマンスデータを収集・分析するためのGPROFNGツール群のドライバ gp-archive - 収集データのアーカイブ gp-collect-app - ターゲット・アプリケーションのパフォーマンス・データを収集 gp-display-html - プロファイルを参照するためのHTMLベースのディレクトリ構造を生成 gp-display-src - ターゲット・オブジェクトのディスアセンブルとともにソース・コードを表示 gp-display-text - パフォーマンスデータをプレーンテキストで表示 ld - リンカ nm - オブジェクトファイルに含まれるシンボル(クラス、関数など)を表示する objcopy - オブジェクトファイルをコピーする、オブジェクトフォーマットの変換を行う objdump - オブジェクトファイルのダンプ情報を表示する ranlib - アーカイブのインデックスを作成する readelf - ELFファイルの中身を表示する size - セクションの大きさとその合計をリストする strings - ファイルに含まれる印刷可能な文字の並びを表示 strip - オブジェクトファイル中のシンボルを除去
元々binutilsのパッケージは少数のユーティリティから構成されていたが、後に関連性の高さからリンカとアセンブラ(2.5以降)も含まれるようになった。
BFDとlibopcodes 個々のbinutilsコマンドは単純な機能しかもたない。これらを組み合わせカプセル化したものとして、BFD (Binary File Descriptor) やlibopcodesライブラリがある。
最初のBFDバージョンは、David Henkel-WallaceとSteve Chamberlainによって書かれた。過去には、Ken RaeburnとIan Lance Taylorがメンテナンスを行っていた。2005年以降はNick Cliftonがメンテナンスしている。
参考文献など
外部リンク GNU Binutils(公式サイト) Documentation for binutils