我对llvm代码非常陌生,如果满足某些条件,我将尝试转义一条指令。我要进行的转义操作是使用Instruction::getNextNonDebugInstruction()
函数,该函数在编译时会出现此错误:
“类llvm :: Instruction”没有名为的成员 ‘getNextNonDebugInstruction’;
这是没有道理的,因为我们可以看到getNextNonDebugInstruction()
是Instruction类中的公开和现有成员:
https://llvm.org/doxygen/classllvm_1_1Instruction.html#ae7b05782d5230743f5dda7825f0ebd88
这是我的代码:
llvm::Instruction* inst_ = ki->inst;
if(isa<CallInst>(inst_) && str.find("bpf")!= std::string::npos)
{
llvm::Instruction* next_inst = inst_->getNextNonDebugInstruction();
}
答案 0 :(得分:1)
该函数大约在一年前被添加到LLVM代码库中(请参见https://github.com/llvm/llvm-project/commit/f01827f2d1bdaff14cf1cf176e8a69e308d5371e)。听起来您的版本不包含该更改。