jjzjj

demangled

全部标签

c++ - boost::core::demangle 在 vi​​sual studio typeid().name 上

我试图在Windows(visualstudio2010)上获取一个报告类类型的字符串,但没有任何成功。由于UnDecorateName不起作用,我正在使用boost库。#include#includeclassMyObject{};intmain(intargc,char**argv){MyObjecto;constchar*str=typeid(o).name();//str="classMyObject"std::stringdstr=boost::core::demangle(str);//dstr="classMyObject"return0;}我怎样才能从上面的代码中只得到

Windows demangling 库

我正在寻找一个开源库来对Windows可执行文件符号名称进行分解。是否存在这样的事情,或者我必须使用Microsoft库? 最佳答案 呃,thisguy似乎已经成功了。 关于Windowsdemangling库,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3059355/

c++ - "cxa"中的 "__cxa_demangle"前缀是什么意思?

我有一段代码,其中我看到了__cxa_前缀。例如,以下摘录包含它:std::unique_ptrown(#ifndef_MSC_VERabi::__cxa_demangle(typeid(TR).name(),nullptr,nullptr,nullptr),#elsenullptr,#endifstd::free);我很乐意对cxa的含义进行一些解释。 最佳答案 这只是函数名,但可能是CXxAbi。 关于c++-"cxa"中的"__cxa_demangle"前缀是什么意思?,我们在St

c++ - 从 demangled 名称中获取 mangled 名称

有什么办法可以从g++中的demangledname中取回mangledname。例如,我的名称是func(char*,int),我应该怎么做才能得到重整的名称,即_Z4funcPci?我的问题是特定于g++的。 最佳答案 您可以简单地使用g++编译一个带有您需要的签名的空函数并从中提取名称。例如:echo"intf1(char*,int){}"|g++-xc++-S--o-|grep"^_.*:$"|sed-e's/:$//'给出输出_Z2f1Pci这是我认为你需要的。确保包含任何相关的头文件,因为它们会影响符号被破坏的方式。

c++ - 从 demangled 名称中获取 mangled 名称

有什么办法可以从g++中的demangledname中取回mangledname。例如,我的名称是func(char*,int),我应该怎么做才能得到重整的名称,即_Z4funcPci?我的问题是特定于g++的。 最佳答案 您可以简单地使用g++编译一个带有您需要的签名的空函数并从中提取名称。例如:echo"intf1(char*,int){}"|g++-xc++-S--o-|grep"^_.*:$"|sed-e's/:$//'给出输出_Z2f1Pci这是我认为你需要的。确保包含任何相关的头文件,因为它们会影响符号被破坏的方式。