» www.Giftbox.Az - Bir birindən gözəl hədiyyə satışı
ウィキペディアランダム
毎日カテゴリ
共有: WhatsappFacebookTwitterVK

DWARF

DWARF(ドワーフ)とは、広く使われているデバッグ用データフォーマットの規格である。当初ELFと共に設計されたが、オブジェクトファイルのフォーマットとは独立している[1]。名称は "ELF" から連想された言葉遊びだが、後に「Debugging With Arbitrary Record Formats の頭字語」とされた[1][2]

歴史

DWARF の最初のバージョンは過剰な容量を必要とするものだったため、様々な符号化手法によってサイズを削減した互換性のない DWARF-2 に置き換えられた。当初はすぐには広まらなかった。例えば、サン・マイクロシステムズSolarisへの移行の際にELFを採用したが、従来からある (stabs) の継続使用を選択し、この組合せを "stabs-in-elf" と称した。Linuxもこれに倣い、DWARF-2 は1990年代末までデフォルトにはならなかった。

2005年12月20日にDWARF 3.0がリリースされ[3]、の名前空間のサポート、(Fortran 90) の alloctable データのサポート、コンパイラ最適化技法への対応などが追加された。DWARF標準化委員会の委員長 Michael Eager はデバッグ用フォーマットとDWARF-3について Introduction to the DWARF Debugging Format という文書を書いている[1]

2010年6月10日にDWARF 4、2017年2月15日にDWARF 5が発表になった。

構造

DWARFは Debugging Information Entry (DIE) というデータ構造を使って、変数、データ型、プロシージャなどを表す。DIE にはタグ(例えば、DW_TAG_variableDW_TAG_pointer_typeDW_TAG_subprogram など)と属性(キーと値の対)があり、DIE同士の入れ子が可能で、木構造を形成できる。DIEの属性には同じ木構造上の他のDIEへの参照を格納できる。例えば、変数を表すDIEの属性 DW_AT_type が、その変数のデータ型を表す DIE を指すといった使い方をする。

シンボリックなデバッガは一般に、行番号テーブルとコールフレーム情報テーブルという大きなテーブルを必要とする。記憶領域を節約するため、これらのテーブルは単純な専用有限状態機械用のバイトコード命令列で表される。行番号テーブルはオブジェクトのコードの位置とソースコード上の位置の対応表であり、どの命令が(関数プロローグ)やエピローグに属するかも示す。コールフレーム情報テーブルは、コールスタック上のフレームの位置をデバッガに知らせるものである。

脚注

  1. ^ a b c Michael J. Eager (2012年4月). “Introduction to the DWARF Debugging Format”. 2013年12月18日閲覧。
  2. ^ “elfutils — Packages — GNU Guix”. 2023年2月17日閲覧。
  3. ^ "DWARF Version 3 Standard Released" (Press release). Free Standards Group. 4 January 2006. 2007年6月25日閲覧

外部リンク

標準

  • DWARF 公式サイト
  • DWARF 5 Standard 2017年2月15日
  • DWARF 4 Standard 2010年6月10日
  • DWARF 3.0 Standard 2005年12月20日
  • DWARF Debugging Information Format Specification Version 2.0 1993年7月27日

ツール

  • David A's DWARF Page ライブラリ libdwarf、ツール dwarfdump、その他の関連情報がある。
  • DWARF2-XML DWARFおよびELF情報をXMLに変換するツールとそれを使ったコールグラフ生成ツール

記事

  • DWARF2 debugging information format
ウィキペディア、ウィキ、本、library、論文、読んだ、ダウンロード、自由、無料ダウンロード、mp3、video、mp4、3gp、 jpg、jpeg、gif、png、画像、音楽、歌、映画、本、ゲーム、ゲーム。