-std::vector<std::string> SplitString(const std::string &s, char delim, std::vector<std::string> &elems)
-{
- std::stringstream ss(s);
- std::string item;
- while(std::getline(ss, item, delim))
- {
- elems.push_back(item);
- }
- return elems;
-}
-
-const int Demangle(const char* symbol, std::vector<std::string> &resolved)
-{
- int status = -4;
-
- char* res = abi::__cxa_demangle(symbol, NULL, NULL, &status);
-
- const char* const demangled_name = (status==0)?res:symbol;
-
- std::string sDemangled(demangled_name);
-
- free(res);
-
- SplitString(sDemangled, ':', resolved);
-
- return resolved.size();
-}
-
-const std::string DemangleShortName(const char *symbol)
-{
- std::vector<std::string> resolved;
-
- Demangle(symbol, resolved);
-
- if(resolved.size() > 0)
- {
- return resolved[ resolved.size() - 1 ];
- }
- else
- {
- return std::string(symbol);
- }
-
-}
-