编译器似乎没有找到 class llvm::Instruction 的成员函数
compiler doesn't seem to find a member function of class llvm::Instruction
我是 llvm 代码的新手,如果指令满足某些条件,我会尝试对其进行转义。我试图为逃生做的是使用 Instruction::getNextNonDebugInstruction()
函数,它在我编译时给我这个错误:
‘class llvm::Instruction’ has no member named
‘getNextNonDebugInstruction’;
这没有意义,因为我们可以看到 getNextNonDebugInstruction()
是 public 并且是指令 class:
中的现有成员
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();
}
该函数大约在一年前添加到 LLVM 代码库中(参见 https://github.com/llvm/llvm-project/commit/f01827f2d1bdaff14cf1cf176e8a69e308d5371e)。听起来您的版本不包含该更改。
我是 llvm 代码的新手,如果指令满足某些条件,我会尝试对其进行转义。我试图为逃生做的是使用 Instruction::getNextNonDebugInstruction()
函数,它在我编译时给我这个错误:
‘class llvm::Instruction’ has no member named ‘getNextNonDebugInstruction’;
这没有意义,因为我们可以看到 getNextNonDebugInstruction()
是 public 并且是指令 class:
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();
}
该函数大约在一年前添加到 LLVM 代码库中(参见 https://github.com/llvm/llvm-project/commit/f01827f2d1bdaff14cf1cf176e8a69e308d5371e)。听起来您的版本不包含该更改。