GNU Binutils
GNU Binutilsまたはbinutilsは、さまざまなオブジェクトフォーマットを含むオブジェクトファイルを扱うためのプログラミングツールである。わかりやすくいうと、GNUが提供しているツールのうち、バイナリのプログラミングを実装するためのツールであり[2]、そのためクロスアセンブラとして活用できる。現在のバージョンは、シグナスソリューションズ(レッドハットに買収された)によってBFDライブラリを使用して書かれた。binutilsの典型的な使われ方は、GCC、make、GDBなどの補助である。
開発元 | GNUプロジェクト |
---|---|
最新版 |
2.43.1[1]
/ 17 8月 2024 |
リポジトリ | |
プログラミング 言語 | C |
サポート状況 | 開発中 |
ライセンス | GNU General Public License |
公式サイト |
www |
コマンド
編集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 2.43.1 released” (17 8月 2024). 18 8月 2024閲覧。
- ^ 伊藤剛浩・川田裕貴『独自CPUで学ぶコンピュータの仕組み』、2016年3月20日 第1版 第1刷 発行、237ページ