cc [ flag ... ] file [ library ... ] -ldemangle
#include <demangle.h> int cplus_demangle( const char *symbol, char *interpreta- tion, size_t size );
cplus_demangle() は、エンコードされた C++ リンカーのシンボル名 (符号化名) を解釈 (復号化) します。
cplus_demangle_noret() では、関数シンボルの戻り型が解釈に含まれない点を除き、同じ処理が行われます。
C++ リンカーのシンボル名にはエンコードされないものがあります。このような場合、戻り値は DEMANGLE_ENAME になります。
symbol 文字列パラメータは、リンカーのシンボル名を指します。
interpretation パラメータは、ユーザー指定の出力文字列バッファー (サイズは size バイト) を指します。
cplus_demangle() および cplus_demangle_noret() の戻り値は次のとおりです。
symbol パラメータはエンコードされた有効な名前であり、interpretation の内容はデコードされた名前です。
symbol パラメータはエンコードされた名前ではないか、symbol パラメータは誤ってエンコードされた名前です。
interpretation バッファーの内容は symbol の内容のコピーです。
interpretation 出力バッファーが小さすぎて、解釈 (デコードされた名前またはリンカーのシンボル名) を格納できません。
interpretation バッファーの内容は未定義です。
cplus_demangle() および cplus_demangle_noret() は、Sun WorkShop C++ コンパイラのバージョン 3.0.1、4.0.1、4.1、4.2、5.0、5.1、および 5.2 でエンコードされた名前を処理します。
cplus_demangle() および cplus_demangle_noret() は、demangle() に代わる改良版です。
CC(1), dem(1), c++filt(1)