0
我想调试一个jit函数。就像下面的源代码一样,我想调试FibF函数,但是当我通过gdb调试它时,似乎无法运行到函数范围。如何调试它?先谢谢你。如何在llvm中调试jitted函数?
// We are about to create the "fib" function:
Function *FibF = CreateFibFunction(M.get(), Context);
// Now we going to create JIT
std::string errStr;
ExecutionEngine *EE =
EngineBuilder(M.get())
.setErrorStr(&errStr)
.setEngineKind(EngineKind::JIT)
.create();
if (!EE) {
errs() << argv[0] << ": Failed to construct ExecutionEngine: " << errStr
<< "\n";
return 1;
}
errs() << "verifying... ";
if (verifyModule(*M)) {
errs() << argv[0] << ": Error constructing function!\n";
return 1;
}
// Call the Fibonacci function with argument n:
std::vector<GenericValue> Args(1);
Args[0].IntVal = APInt(32, n);
GenericValue GV = EE->runFunction(FibF, Args);
现在这个链接似乎已经死了。此外,新的ORC JIT似乎不支持调试JIT代码。我相信这些信息已经转移到第9章了:https://llvm.org/docs/tutorial/LangImpl09.html – PaulR
@PaulR现在已经在第9部分了,谢谢你的提醒! – Oak