【问题标题】:How can I get function name from CallInst in LLVM?如何从 LLVM 中的 CallInst 获取函数名称? 【发布时间】:2012-07-27 11:34:28 【问题描述】: 我有一个CallInst 类型的对象。如何获取被调用函数(又名被调用者)的名称。假设函数被直接调用(即没有间接函数调用)。 【问题讨论】: 标签: c++ c llvm clang 【解决方案1】: StringRef get_function_name(CallInst *call) { Function *fun = call->getCalledFunction(); if (fun) // thanks @Anton Korobeynikov return fun->getName(); // inherited from llvm::Value else return StringRef("indirect call"); } 无论如何,这就是文档所暗示的: CallInst CallInst::getCalledFunction 返回Function 并返回继承图,直到您看到一个合理的候选者: Value Value::getName 【讨论】: 注意,在间接调用的情况下,此处 fun 可以为 NULL。