【问题标题】:How to get the type of llvm::Value with lldb如何使用 lldb 获取 llvm::Value 的类型
【发布时间】:2018-10-04 02:43:12
【问题描述】:

在使用 LLVM IR 时,我们可以使用 LLVM Raw Stream 打印每个 llvm::Value 的类型。例如

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 行”有一个断点,我能否在 lldb 中获得一些 llvm::Value* v 的人类可读类型信息(类似于标准输出中的“i64”)?

【问题讨论】:

  • p v->dump(), p v->getType()->dump()
  • @IsmailBadawi 它有效,谢谢!要将其添加到答案中吗?

标签: debugging llvm lldb llvm-ir


【解决方案1】:

正如@IsmailBadawi 的评论中描述的那样,我们可以使用p v->dump() p v->getType()->dump() 来打印目标信息(在stdout 中而不是调试输出中)

【讨论】:

    猜你喜欢
    • 2020-03-19
    • 2015-05-17
    • 2014-10-11
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    • 2012-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多