sys: Updated llvm demangler, now supports D-Lang and Rust symbols

This commit is contained in:
WerWolv
2022-08-09 13:51:03 +02:00
parent f1ec2ef0c4
commit 0192c791ce
30 changed files with 4807 additions and 2494 deletions

View File

@@ -37,15 +37,21 @@ namespace hex::plugin::builtin {
using namespace hex::literals;
void drawDemangler() {
static std::vector<char> mangledBuffer(0xF'FFFF, 0x00);
static std::string demangledName;
static std::string mangledName, demangledName;
if (ImGui::InputText("hex.builtin.tools.demangler.mangled"_lang, mangledBuffer.data(), 0xF'FFFF)) {
demangledName = llvm::demangle(mangledBuffer.data());
if (ImGui::InputTextWithHint("hex.builtin.tools.demangler.mangled"_lang, "Itanium, MSVC, Dlang & Rust", mangledName)) {
demangledName = llvm::demangle(mangledName);
if (demangledName == mangledName) {
demangledName = "???";
}
}
ImGui::InputText("hex.builtin.tools.demangler.demangled"_lang, demangledName.data(), demangledName.size(), ImGuiInputTextFlags_ReadOnly);
ImGui::NewLine();
ImGui::Header("hex.builtin.tools.demangler.demangled"_lang);
if (ImGui::BeginChild("demangled", ImVec2(0, 200_scaled), true)) {
ImGui::TextFormattedWrapped("{}", demangledName);
}
ImGui::EndChild();
}
void drawASCIITable() {

View File

@@ -594,7 +594,7 @@ namespace hex::plugin::builtin {
{ "hex.builtin.nodes.visualizer.byte_distribution.header", "Byteverteilung" },
{ "hex.builtin.tools.demangler", "Itanium/MSVC demangler" },
{ "hex.builtin.tools.demangler", "LLVM Demangler" },
{ "hex.builtin.tools.demangler.mangled", "Mangled Namen" },
{ "hex.builtin.tools.demangler.demangled", "Demangled Namen" },
{ "hex.builtin.tools.ascii_table", "ASCII Tabelle" },

View File

@@ -598,7 +598,7 @@ namespace hex::plugin::builtin {
{ "hex.builtin.nodes.visualizer.byte_distribution.header", "Byte Distribution" },
{ "hex.builtin.tools.demangler", "Itanium/MSVC demangler" },
{ "hex.builtin.tools.demangler", "LLVM Demangler" },
{ "hex.builtin.tools.demangler.mangled", "Mangled name" },
{ "hex.builtin.tools.demangler.demangled", "Demangled name" },
{ "hex.builtin.tools.ascii_table", "ASCII table" },

View File

@@ -602,7 +602,7 @@ namespace hex::plugin::builtin {
//{ "hex.builtin.nodes.visualizer.byte_distribution.header", "Byte Distribution" },
{ "hex.builtin.tools.demangler", "Itanium/MSVC demangler" },
{ "hex.builtin.tools.demangler", "LLVM Demangler" },
{ "hex.builtin.tools.demangler.mangled", "Nome Mangled" },
{ "hex.builtin.tools.demangler.demangled", "Nome Demangled" },
{ "hex.builtin.tools.ascii_table", "Tavola ASCII" },

View File

@@ -599,7 +599,7 @@ namespace hex::plugin::builtin {
{ "hex.builtin.nodes.visualizer.byte_distribution.header", "バイト分布" },
{ "hex.builtin.tools.demangler", "Itanium/MSVCデマングラー" },
{ "hex.builtin.tools.demangler", "LLVMデマングラー" },
{ "hex.builtin.tools.demangler.mangled", "マングリング名" },
{ "hex.builtin.tools.demangler.demangled", "デマングリング名" },
{ "hex.builtin.tools.ascii_table", "ASCIIテーブル" },

View File

@@ -594,7 +594,7 @@ namespace hex::plugin::builtin {
{ "hex.builtin.nodes.visualizer.byte_distribution.header", "Byte Distribution" },
{ "hex.builtin.tools.demangler", "Itanium/MSVC demangler" },
{ "hex.builtin.tools.demangler", "LLVM Demangler" },
{ "hex.builtin.tools.demangler.mangled", "Mangled name" },
{ "hex.builtin.tools.demangler.demangled", "Demangled name" },
{ "hex.builtin.tools.ascii_table", "ASCII table" },

View File

@@ -599,7 +599,7 @@ namespace hex::plugin::builtin {
{ "hex.builtin.nodes.visualizer.byte_distribution.header", "字节分布" },
{ "hex.builtin.tools.demangler", "Itanium/MSVC 名还原" },
{ "hex.builtin.tools.demangler", "LLVM 名还原" },
{ "hex.builtin.tools.demangler.mangled", "修饰名" },
{ "hex.builtin.tools.demangler.demangled", "还原名" },
{ "hex.builtin.tools.ascii_table", "ASCII 表" },

View File

@@ -595,7 +595,7 @@ namespace hex::plugin::builtin {
{ "hex.builtin.nodes.visualizer.byte_distribution.header", "Byte Distribution" },
{ "hex.builtin.tools.demangler", "Itanium/MSVC demangler" },
{ "hex.builtin.tools.demangler", "LLVM Demangler" },
{ "hex.builtin.tools.demangler.mangled", "Mangled name" },
{ "hex.builtin.tools.demangler.demangled", "Demangled name" },
{ "hex.builtin.tools.ascii_table", "ASCII 表" },