c++filt [-_|--strip-underscores] [-j|--java] [-n|--no-strip-underscores] [-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