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