c++filt [@option{-_}|@option{--strip-underscores}] [@option{-j}|@option{--java}] [@option{-n}|@option{--no-strip-underscores}] [@option{-s} format|@option{--format=}format] [@option{--help}] [@option{--version}] [symbol...]
C++とJava言語は,関数のオーバーロードを提供し,それは(それぞれ異なる型の パラメータの受け入れを提供する)同じ名前で複数の関数を書くことが可能だと いうことを意味します.すべてのC++とJavaの関数名は,低レベルのアセンブリ ラベルに符号化されます(この処理はmanglingとして知られています.) @command{c++filt}(2)プロ グラムは,マッピングを反転します.それは,これらのオーバーロードされた関 数を破壊することから,リンカが守ることができるように,低レベルの名前をユー ザレベルの名前に復号(demangles)します.
入力にあるすべての英数単語(文字,数字,アンダースコア,ドル記号,または ピリオド)は,ポテンシャルラベルと考えられます.ラベルをC++の名前に復号す る場合,C++の名前は出力で低レベルの名前に置換されます.
個別のシンボルを解読するために@command{c++filt}を使用することが可能です.
c++filt symbol
symbol引数が与えられた場合,@command{c++filt}は,シンボル名を標準 入力から読み込み,demangleされた名前を標準出力に書き出します.すべての結 果は,標準出力に出力されます.
foo
が,低レベルでは
名前_foo
になります.このオプションは,最初のアンダースコアを削除
します.@command{c++filt}がデフォルトでアンダースコアを削除するかどうか
はターゲットに依存します.
gnu
lucid
arm
hp
edg
gnu-new-abi
警告: @command{c++filt}は,新しいユーティリティで,そのユーザイン ターフェースの詳細は将来のリリースで変更を受けやすくなっています.特に, コマンドラインの引数として渡される名前を復号するために,コマンドラインオ プションが,将来要求されるかもしれません.言い換えると以下のようになると いうことです.
c++filt symbolこれが,将来のリリースでは,以下のようになるかもしれません.
c++filt option symbol
Go to the first, previous, next, last section, table of contents.