* Demangles a symbol name using the cxx abi. * @param symbol_name the mangled name of the symbol * @return the demangled name on success, empty string on failure */
| 42 | * @return the demangled name on success, empty string on failure |
| 43 | */ |
| 44 | optional<std::string> demangle_symbol(const char* symbol_name) { |
| 45 | int status; |
| 46 | char* demangled = abi::__cxa_demangle(symbol_name, nullptr, nullptr, &status); |
| 47 | if (status == 0) { |
| 48 | std::string demangled_name = demangled; |
| 49 | free(demangled); |
| 50 | return { demangled_name }; |
| 51 | } else { |
| 52 | return {}; |
| 53 | } |
| 54 | } |
| 55 | } // namespace |
| 56 | #endif |
| 57 |