GNU Binutilsまたはbinutilsは、さまざまなオブジェクトフォーマットを含むオブジェクトファイルを扱うためのプログラミングツールである。わかりやすくいうと、GNUが提供しているツールのうち、バイナリのプログラミングを実装するためのツールであり[2]、そのためクロスアセンブラとして活用できる。現在のバージョンは、シグナスソリューションズレッドハットに買収された)によってBFDライブラリを使用して書かれた。binutilsの典型的な使われ方は、GCCmakeGDBなどの補助である。

GNU Binutils
開発元 GNUプロジェクト
最新版
2.43.1[1] ウィキデータを編集 / 17 8月 2024
リポジトリ ウィキデータを編集
プログラミング
言語
C
サポート状況 開発中
ライセンス GNU General Public License
公式サイト www.gnu.org/s/binutils/
テンプレートを表示

コマンド

編集

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がメンテナンスしている。

参考文献など

編集
  1. ^ GNU Binutils 2.43.1 released” (17 8月 2024). 18 8月 2024閲覧。
  2. ^ 伊藤剛浩・川田裕貴『独自CPUで学ぶコンピュータの仕組み』、2016年3月20日 第1版 第1刷 発行、237ページ

外部リンク

編集