3
함수 호출의 인수를 추출 할 LLVM 패스를 작성하고 싶습니다. 논쟁이 일정한 것 인 경우에, 나의 목적은 그 상수가 인 무슨을 재기하기위한 것이다. 내가 opt
을 통해 패스를 실행하면LLVM에서 함수 호출의 인수를 얻는 방법?
%2 = call noalias i8* @malloc(i64 512) #3
LLVM 패스
bool runOnFunction(Function &F) override {
for (auto& B : F) {
for (auto& I : B) {
if(CallInst* call_inst = dyn_cast<CallInst>(&I)) {
Function* fn = call_inst->getCalledFunction();
StringRef fn_name = fn->getName();
errs() << fn_name << " : " << call_inst->getArgOperand(0) << "\n";
for(auto arg = fn->arg_begin(); arg != fn->arg_end(); ++arg) {
errs() << *arg << "\n";
}
}
}
}
return false;
}
모양처럼
적외선 보이는, 다음
malloc : 0x3df3f40
i64 %0
이 0x3df3f40
는 무엇을 상징 하는가 생산 ? i64
및 512
대신에 왜 i64
및 %0
이 생성됩니까?