18cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/** 28cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @file demangle_symbol.h 38cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * Demangle a C++ symbol 48cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * 58cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @remark Copyright 2002 OProfile authors 68cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @remark Read the file COPYING 78cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * 88cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @author John Levon 98cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd */ 108cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 118cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#ifndef DEMANGLE_SYMBOL_H 128cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#define DEMANGLE_SYMBOL_H 138cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 148cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include <string> 158cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 168cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/// demangle type: specify what demangling we use 178cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddenum demangle_type { 188cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd /// no demangling. 198cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd dmt_none, 208cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd /// use cplus_demangle() 218cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd dmt_normal, 228cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd /// normal plus a pass through the regular expression to simplify 238cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd /// the mangled name 248cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd dmt_smart 258cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd}; 268cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 278cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/** 288cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * demangle_symbol - demangle a symbol 298cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @param name the mangled symbol name 308cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @return the demangled name 318cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * 328cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * Demangle the symbol name, if the global 338cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * variable demangle is true. 348cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * 358cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * The demangled name lists the parameters and type 368cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * qualifiers such as "const". 378cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd */ 388cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Doddstd::string const demangle_symbol(std::string const & name); 398cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd 408cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#endif // DEMANGLE_SYMBOL_H 41