llvm-dwarfdump - DWARFデバッグ情報のダンプと検証¶
概要¶
llvm-dwarfdump [オプション] [ファイル名 …]
説明¶
llvm-dwarfdump は、オブジェクトファイル、アーカイブ、および.dSYMバンドル内のDWARFセクションを解析し、その内容を人間が読み取れる形式で出力します。 セクション固有のオプションまたは--all
を指定しない限り、.debug_infoセクションのみが出力されます。
入力ファイルが指定されていない場合、a.outが代わりに使用されます。-が入力ファイルとして使用される場合、llvm-dwarfdumpは標準入力ストリームから入力を読み取ります。
オプション¶
- -a, --all¶
サポートされているすべてのDWARFセクションを出力します。
- --arch=<arch>¶
指定されたCPUアーキテクチャのDWARFデバッグ情報をダンプします。 アーキテクチャは名前または番号で指定できます。 このオプションは、目的のアーキテクチャごとに複数回指定できます。デフォルトでは、すべてのCPUアーキテクチャが出力されます。
- -c, --show-children¶
--debug-info
の=<offset>引数、または--find
や--name
などのオプションを使用して選択的に出力する場合に、デバッグ情報エントリの子供を表示します。
- --color¶
出力に色を使用します。
- -f <name>, --find=<name>¶
アクセラレータテーブル内で正確なテキスト<name>を検索し、一致するデバッグ情報エントリを出力します。 アクセラレータテーブルがない場合、または探しているDIEの名前がアクセラレータテーブルに見つからない場合は、速度は遅いですがより完全な
--name
オプションを使用してみてください。
- -F, --show-form¶
DWARF属性タイプの後にDWARFフォームタイプを表示します。
- -h, --help¶
このコマンドのヘルプと使用方法を表示します。
- --help-list¶
オプションをカテゴリにグループ化せずに、このコマンドのヘルプと使用方法を表示します。
- -n <name>, --name=<name>¶
名前(DW_AT_name属性)が<name>であるすべてのデバッグ情報エントリを検索して出力します。
- --lookup=<address>¶
デバッグ情報で<address>を検索し、ファイル、関数、ブロック、および行テーブルの詳細を出力します。
- -o <path>¶
<path>で指定されたファイルに出力をリダイレクトします。-は標準出力ストリームです。
- -p, --show-parents¶
--debug-info
の=<offset>引数、または--find
や--name
などのオプションを使用して選択的に出力する場合に、デバッグ情報エントリの親を表示します。
- --parent-recurse-depth=<N>¶
デバッグ情報エントリの親を表示する場合、最大深度<N>までしか表示しません。
- -r <N>, --recurse-depth=<N>¶
デバッグ情報エントリを表示する場合、子供は最大深度<N>までしか表示しません。
- --show-section-sizes¶
すべてのデバッグセクションのサイズ(バイト単位)を表示します。
- --show-sources¶
デバッグ情報に記載されているすべてのソースファイルを出力します。可能な限り絶対パスが与えられます。
- --summarize-types¶
タイプユニットエントリの説明を省略します。
- -x, --regex¶
--name
を使用した検索では、任意の <name> 文字列を正規表現として扱います。--ignore-case
も指定されている場合、正規表現は大文字と小文字を区別しません。
- -u, --uuid¶
各アーキテクチャのUUIDを表示します。
- --diff¶
2つの異なるファイルからのDWARF出力を比較しやすい形式で出力をダンプします。
- -v, --verbose¶
ダンプ時に詳細情報を表示します。これにより、DWARFの問題のデバッグに役立ちます。
- --verify¶
コンパイルユニットチェーン、DIE関係グラフ、アドレス範囲などを検証することにより、DWARF情報の構造を検証します。
- --version¶
ツールのバージョンを表示します。
- --debug-abbrev, --debug-addr, --debug-aranges, --debug-cu-index, --debug-frame [=<offset>], --debug-gnu-pubnames, --debug-gnu-pubtypes, --debug-info [=<offset>], --debug-line [=<offset>], --debug-line-str, --debug-loc [=<offset>], --debug-loclists [=<offset>], --debug-macro, --debug-names, --debug-pubnames, --debug-pubtypes, --debug-ranges, --debug-rnglists, --debug-str, --debug-str-offsets, --debug-tu-index, --debug-types [=<offset>], --eh-frame [=<offset>], --gdb-index, --apple-names, --apple-types, --apple-namespaces, --apple-objc¶
名前で指定されたDWARFセクションをダンプします。デフォルトでは.debug_infoセクションのみが表示されます。一部のエントリでは、対応するセクション内のダンプする正確なエントリのオフセットをオプションで指定する方法として=<offset>を追加できます。オフセットが指定されている場合、そのオフセットにあるエントリのみがダンプされ、そうでない場合はセクション全体がダンプされます。
--debug-macro
オプションは、.debug_macroセクションと.debug_macinfoセクションの両方を印刷します。--debug-frame
オプションと--eh-frame
オプションはエイリアスです。両方のセクションが存在する場合、1つのコマンドで両方が出力されます。
- @<FILE>¶
<FILE>からコマンドラインオプションを読み取ります。
統計出力の形式¶
--statistics
オプションは、処理されたデバッグ情報の品質メトリクスを表す1行のJSON出力を生成します。これらのメトリクスは、2つのコンパイラ間の変更を比較するのに役立ち、特にコンパイラの変更がデバッグ情報の品質に与える影響を判断する際に役立ちます。
出力はキーと値のペアとしてフォーマットされます。最初のペアにはバージョン番号が含まれています。キーには次の命名スキームが使用されます。
variables ==> ローカル変数とパラメータ
local vars ==> ローカル変数
params ==> 仮パラメータ
集計値には、次のキーが使用されます。
sum_of_all_variables(…) ==> すべての変数に適用される合計
#bytes ==> バイト数
#variables - entry values … ==> エントリ値などを除く変数の数
終了ステータス¶
llvm-dwarfdump は、入力ファイルが正常に解析およびダンプされた場合、0を返します。それ以外の場合は、1を返します。