ADDR2LINE
Section: GNU Development Tools (1)
Updated: 2025-09-17
Index
JM Home Page
roff page
名前
addr2line - アドレスまたはシンボル+オフセットをファイル名と行番号に変換
書式
addr2line [-a|--addresses]
[-b bfdname|--target=bfdname]
[-C|--demangle[=style]]
[-r|--no-recurse-limit]
[-R|--recurse-limit]
[-e filename|--exe=filename]
[-f|--functions] [-s|--basename]
[-i|--inlines]
[-p|--pretty-print]
[-j|--section=name]
[-H|--help] [-V|--version]
[addr addr ...]
説明
addr2line は、アドレスまたはシンボル+オフセットをファイル名と行番号に変換します。
実行可能ファイル内のアドレスまたはシンボル+オフセット、または再配置可能オブジェクトのセクション内のオフセットを指定すると、デバッグ情報を使用して、どのファイル名と行番号が関連付けられているかを判断します。
使用する実行可能ファイルまたは再配置可能オブジェクトは、-e オプションで指定します。デフォルトはa.out ファイルです。使用する再配置可能オブジェクトのセクションは、-j オプションで指定されます。
addr2line には2つの操作モードがあります。
最初のモードは、コマンドラインで16進数のアドレスまたはシンボル+オフセットが指定し、 addr2line は各アドレスのファイルの名前と行番号を表示します。
2番目のモードは、 addr2line は標準入力から16進アドレスまたはシンボル+オフセットを読み取り、各アドレスのファイルの名前と行番号を標準出力に表示します。このモードでは、 addr2line は動的に選択されたアドレスを変換するパイプとして用いることができます。
出力の形式は ファイル名:行番号 です。デフォルトでは、各入力アドレスごとに 1行出力を生成します。
2つのオプションは、各 ファイル名:行番号 行の前に追加の行を(この順序で)生成できます。
-a オプションを使用すると、入力されたアドレスの行が表示されます。
-f オプションを使用すると、FUNCTION名前 の行が表示されます。これは、アドレスを含む関数の名前です。
このオプションでは、ファイル名:行番号 行の後に追加の行を生成できます。
-i オプションが使用され、コンパイラによるインライン化のために指定されたアドレスのコードがそこに存在する場合、追加の行が後で表示されます。インライン化された機能ごとに、1つまたは2つの追加行 (-f オプションが使用されている場合) が表示されます。
あるいは、 -p オプションが使用される場合、各入力アドレスは、アドレス、関数名、ファイル名 および行番号を含む単一の長い出力行を生成します。-i オプションも使用されている場合、インライン化された関数は同じ方法で表示されますが、別々の行に表示され、先頭に(inlined by)というテキストが付きます。
ファイル名または機能名が特定できない場合、addr2line は代わりに2つの疑問符を印刷します。行番号が判別できない場合、addr2line は 0 を表示します。
シンボル+オフセットを使用する場合、シンボルが 16進数であいまいな場合を除き、+オフセット はオプションです。解決されたシンボルは、エンコード状態(mangled) または デコード状態 (unmangled) にすることができます。ただし、エンコード状態(mangled) 以外のシンボルに + を使用することはできません。
オプション
ここで選択肢として示されているオプションの、長い形式と短い形式は同等です。
- -a
-
- --addresses
-
関数名、ファイル、行番号情報の前にアドレスを表示します。アドレスは簡単に識別できるように0x の接頭辞が付いて表示されます。
- -b bfdname
-
- --target=bfdname
-
オブジェクトファイルのオブジェクトコード形式が bfdname であることを指定します。
- -C
-
- --demangle[=style]
-
(demangle)低レベルシンボル名をユーザレベルの名前にデコードします。
これにより、システムによって先頭に追加されたアンダースコアが削除されるだけでなく、C++ 関数名が読みやすくなります。コンパイラが異なれば、操作スタイルも異なります。オプションの demangling style 引数を使用すると、コンパイラに適した デコード(demangling) スタイルを選択できます。
- -e filename
-
- --exe=filename
-
アドレスを変換したい実行ファイルの名前を指定します。デフォルトのファイルは a.out です。
- -f
-
- --functions
-
ファイル名や行番号の情報と共に関数の名前も表示します。
それぞれのファイル名のベースのみを表示します(訳注: ディレクトリを表示しません)。
- -i
-
- --inlines
-
アドレスがインライン化された関数に属している場合、最初のインライン化されていない関数までのすべての包含スコープのソース情報も出力されます。たとえば、 "main" が "callee2" をインライン化する "callee1" をインライン化し、アドレスが "callee2" からの場合、 "callee1" と "main" のソース情報も表示されます。
- -j
-
- --section
-
絶対アドレスではなく、指定されたセクションに相対的なオフセットを読み込みます。
- -p
-
- --pretty-print
-
出力をより人間に優しいものにします。各位置が1行に印刷されます。
-i オプションが指定された場合、すべての包含範囲の行に (inlined by) という接頭辞が付きます。
- -r
-
- -R
-
- --recurse-limit
-
- --no-recurse-limit
-
- --recursion-limit
-
- --no-recursion-limit
-
文字列の削除中に実行される再帰の量の制限を有効または無効にします。名前をエンコード (mangling) する形式は無限レベルの再帰を許すので、デコード操作がホストマシンで利用可能なスタック空間の量を使い果たし、メモリ障害を引き起こすような文字列を作成する可能性があります。この制限では、再帰を 2048レベルまでのネストに制限することで、これが発生しないようにしています。
デフォルトでは、この制限は有効になっていますが、本当に複雑な名前をデコード (demangle) するには無効にする必要がある場合があります。ただし、再帰制限が無効になっている場合は、スタックが枯渇する可能性があり、そのようなイベントに関するバグレポートは拒否されることに注意してください。
-r オプションは、--no-recurse-limit オプションの同義語です。-R オプションは、--recurse-limit オプションの同義語です。
このオプションは、-C または --demangle オプションが有効になっている場合にのみ有効であることに注意してください。
- @file
-
file からコマンドラインオプションを読み込みます。読み込まれた
オプションは、元の @file オプションの代わりに挿入されます。
fileが存在しない場合、または読み込めない場合、オプションは
文字通りに扱われ、削除されません。
file 中のオプションは空白で区切られます。空白文字は、オプション
全体を一重引用符または二重引用符で囲むことによってオプションに含める
ことができます。任意の文字 (バックスラッシュを含む) は、含まれる文字の
前にバックスラッシュを付けることによって含めることができます。
file 自体に追加の @file オプションを含めることができます。
このようなオプションは再帰的に処理されます。
関連項目
@file{binutils 用の Info エントリ。
著作権
Copyright (c) 1991-2025 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included in the
section entitled "GNU Free Documentation License".
Index
- 名前
-
- 書式
-
- 説明
-
- オプション
-
- 関連項目
-
- 著作権
-
This document was created by
man2html,
using the manual pages.