llvm-extract - 从 LLVM 模块中提取函数¶
摘要¶
llvm-extract [选项] –func 函数名 [文件名]
描述¶
llvm-extract 命令接受函数名称并将其从指定的 LLVM 位码文件中提取出来。它主要用作调试工具,用于从触发错误的较大程序中减少测试用例。
除了提取指定函数的位码外,llvm-extract 还会删除不可到达的全局变量、原型和未使用的类型。
如果省略文件名或文件名是 -
,则 llvm-extract 命令从标准输入读取其输入。输出始终写入标准输出,除非指定了 -o 选项(见下文)。
选项¶
–alias 别名
从 LLVM 位码中提取名为 函数名 的别名。可以多次指定以同时提取多个别名。
–ralias 别名正则表达式
从 LLVM 位码中提取与 别名正则表达式 匹配的别名。将提取与正则表达式匹配的所有别名。可以多次指定。
–bb 基本块说明符
提取在 基本块说明符 中指定的块。可以多次指定。每个 <函数:bb[;bb]> 说明符对将创建一个函数。如果在一个对中指定了多个基本块,则序列中的第一个块应该支配其余块。
–delete
从模块中删除指定的全局变量。
-f
在终端上启用二进制输出。通常,llvm-extract 会拒绝写入原始位码输出,如果输出流是终端。使用此选项,llvm-extract 将无论输出设备是什么都写入原始位码。
–func 函数名
从 LLVM 位码中提取名为 函数名 的函数。可以多次指定以同时提取多个函数。
–rfunc 函数正则表达式
从 LLVM 位码中提取与 函数正则表达式 匹配的函数。将提取与正则表达式匹配的所有函数。可以多次指定。
–glob 全局变量名
从 LLVM 位码中提取名为 全局变量名 的全局变量。可以多次指定以同时提取多个全局变量。
–rglob 全局变量正则表达式
从 LLVM 位码中提取与 全局变量正则表达式 匹配的全局变量。将提取与正则表达式匹配的所有全局变量。可以多次指定。
–keep-const-init
保留常量全局变量的值。
–recursive
递归提取所有被调用的函数
-help
打印命令行选项的摘要。
-o 文件名
指定输出文件名。如果文件名是“-”(默认值),则 llvm-extract 将其输出发送到标准输出。
-S
以 LLVM 中间语言(而不是位码)写入输出。
退出状态¶
如果 llvm-extract 成功,它将以 0 退出。否则,如果发生错误,它将以非零值退出。