LLVM是否提供可反修饰Microsoft C++修饰名的命令行工具?
LLVM下MSVC C++修饰名反修饰工具说明
- 你要找的对应MSVC C修饰名反修饰的LLVM命令行工具就是
llvm-undname,功能和llvm-cxxfilt针对Itanium ABI修饰名的作用一致,属于对外可用的独立工具,并非仅内部C API。 - 你找不到该工具通常有两个原因:
llvm-undname从LLVM 11版本才正式纳入官方发行版,如果你本地安装的是LLVM 10及更早版本,默认不包含该工具- 部分第三方打包的精简版LLVM会裁剪非核心工具,也会导致安装目录中找不到对应文件
- 对应的解决方案:
- 下载安装LLVM 11或更新版本的官方预编译包,安装完成后即可在bin目录下找到
llvm-undname可执行文件 - 如果你需要保留现有LLVM版本,也可以单独拉取LLVM源码编译,编译时开启
LLVM_BUILD_TOOLS配置项即可生成llvm-undname - 若本地已安装Visual Studio,也可以直接使用MSVC自带的
undname.exe工具,其反修饰效果和llvm-undname完全一致,用法也基本兼容
- 下载安装LLVM 11或更新版本的官方预编译包,安装完成后即可在bin目录下找到
- 基础使用示例:
执行命令:llvm-undname ?f@@YAHXZ
输出反修饰结果:int __cdecl f(void)
内容的提问来源于stack exchange,提问作者NoSenseEtAl
相关产品推荐
相关产品推荐

