使用LLVM IR时,我们可以使用LLVM Raw Stream来打印每个llvm :: Value的类型。 e.g。
void someFunction(llvm::IRBuilder* iBuilder) {
llvm::Value* v = iBuilder->getInt64(0);
// Print the type of value "v"
v->getType()->print(llvm::outs()); // line A, get "i64" in stdout
}
但是,如果我们想调试一些相关的代码,我不认为修改原始代码(添加print
函数调用)并再次编译以获得一些调试是一个好习惯价值类型的信息
因此,假设我在" A行和#34;处有一个断点,我可以在lldb中获得llvm::Value* v
的一些人类可读类型信息(类似于" i64"在stdout中)吗?
答案 0 :(得分:1)
如@IsmailBadawi的评论中所述,我们可以使用p v->dump()
p v->getType()->dump()
来打印目标信息(在stdout
而不是调试输出中)