我编写了一个llvm Pass来为每个基本块分配一个稳定的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
它可以向终端输出信息,这是我输出流的一部分:
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的文件中。我尝试过重定向,但它不起作用。