llvm-cxxfilt - LLVM 符号名称解混淆器

概要

llvm-cxxfilt [选项] [混淆名称…]

描述

llvm-cxxfilt 是一个符号解混淆器,可以用作 GNU c++filt 工具的替代品。它接受一系列符号名称,并在标准输出流上打印其解混淆形式。如果名称无法解混淆,则按原样打印。

如果命令行上没有指定名称,则从标准输入流交互式读取名称。从标准输入读取名称时,每行输入都将根据不属于有效 Itanium 名称混淆的字符进行分割,即不是字母数字、‘.’、‘$’ 或 ‘_’ 的字符。名称之间的分隔符将按原样复制到输出中。

示例

$ llvm-cxxfilt _Z3foov _Z3bari not_mangled
foo()
bar(int)
not_mangled
$ cat input.txt
| _Z3foov *** _Z3bari *** not_mangled |
$ llvm-cxxfilt < input.txt
| foo() *** bar(int) *** not_mangled |

选项

--format=<value>, -s

假设的混淆方案。有效值为 auto(默认值,自动检测样式)和 gnu(假设 GNU/Itanium 样式)。

--help, -h

打印命令行选项摘要。

--no-params, -p

不解混淆函数参数或返回类型。

--no-strip-underscore, -n

不删除前导下划线。除了基于 Mach-O 的主机外,这是所有平台的默认设置。

--strip-underscore, -_

如果存在,则从每个输入名称中删除单个前导下划线,然后再进行解混淆。在基于 Mach-O 的平台上默认启用。

--types, -t

尝试将名称解混淆为类型名称以及函数名称。

--version

显示 llvm-cxxfilt 可执行文件的版本。

@<FILE>

从响应文件 <FILE> 读取命令行选项。

退出状态

llvm-cxxfilt 返回 0,除非它遇到使用错误,在这种情况下将返回非零退出代码。

另请参阅

llvm-nm(1)