Llvm 如何从“重定向输出”;dbgs“;到一个特殊的文件名?
我编写了一个llvm过程,为每个基本块分配一个稳定的ID,并输出它们的名称和父名称,以供下次分析。我使用Llvm 如何从“重定向输出”;dbgs“;到一个特殊的文件名?,llvm,Llvm,我编写了一个llvm过程,为每个基本块分配一个稳定的ID,并输出它们的名称和父名称,以供下次分析。我使用dbgs()来实现这一点。当我使用-opt运行此过程时,我的命令行如下所示: $ opt -load ../../build/Release+Debug+Asserts/lib/libdgutility.so \ -mergereturn -bbnum -dump-bbid -remove-bbnum -stats -debug \ unit1300.bc -o /dev/null 它可以
dbgs()
来实现这一点。当我使用-opt运行此过程时,我的命令行如下所示:
$ opt -load ../../build/Release+Debug+Asserts/lib/libdgutility.so \
-mergereturn -bbnum -dump-bbid -remove-bbnum -stats -debug \
unit1300.bc -o /dev/null
它可以将信息输出到终端,以下是我的输出流的一部分:
FuncName : setcharset 16041 : if.end189
FuncName : setcharset 16042 : if.end190
FuncName : setcharset 16043 : if.end191
FuncName : setcharset 16044 : if.then196
FuncName : setcharset 16045 : land.lhs.true
FuncName : setcharset 16046 : lor.lhs.false209
.
.
.
FuncName : setcharset 16053 : while.end
FuncName : setcharset 16054 : if.else248
但我想将此信息存储在名为*.log的文件中。我尝试了重定向,但没有成功。我从Try YOUR_COMMAND_WTH_ARGS&>COMMAND.log中找到了解决方案