16#include "llvm/Demangle/Demangle.h"
48 return file_path.ends_with_insensitive(
".rs");
57 char *demangled_cstr = llvm::rustDemangle(mangled_str);
60 if (demangled_cstr && demangled_cstr[0])
61 LLDB_LOG(log,
"demangled rustv0: {0} -> \"{1}\"", mangled_str,
64 LLDB_LOG(log,
"demangled rustv0: {0} -> error: failed to demangle",
70 demangled.
name = demangled_cstr;
71 std::free(demangled_cstr);
#define LLDB_LOG(log,...)
The LLDB_LOG* macros defined below are the way to emit log messages.
#define LLDB_PLUGIN_DEFINE(PluginName)
static Mangled::ManglingScheme g_rust_v0_scheme
The mangling scheme that this plugin registered.
A uniqued constant string class.
llvm::StringRef GetStringRef() const
Get the string value as a llvm::StringRef.
A class that handles mangled names.
static ManglingScheme RegisterManglingScheme(llvm::ArrayRef< llvm::StringRef > prefixes, lldb::LanguageType language, ManglingSchemeMatcher matches=nullptr)
Register a mangling scheme for language.
static void UnregisterManglingScheme(ManglingScheme scheme)
Stop recognizing the names of scheme, a scheme returned by RegisterManglingScheme().
static bool RegisterPlugin(llvm::StringRef name, llvm::StringRef description, ABICreateInstance create_callback)
static bool UnregisterPlugin(ABICreateInstance create_callback)
static Language * CreateInstance(lldb::LanguageType language)
DemangledName DemangleSymbol(ConstString mangled, Mangled::ManglingScheme scheme, const DemangleOptions &options) const override
Demangle mangled, a name mangled with scheme, a scheme that this language registered with Mangled::Re...
bool IsSourceFile(llvm::StringRef file_path) const override
static llvm::StringRef GetPluginNameStatic()
A class that represents a running process on the host machine.
Log * GetLog(Cat mask)
Retrieve the Log object for the channel associated with the given log enum.
LanguageType
Programming language type.
How to demangle a name in DemangleSymbol().
A demangled name and, if requested, where its parts begin and end.
std::string name
Empty if the name couldn't be demangled.