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,除非它遇到使用错误,在这种情况下将返回非零退出代码。