I am trying to implement the expression evaluation for PPC64le using JIT.
But the LLDB is failling to allocate memory when it tries to evaluate an expression.
A Thread Plan is being interrupted before LLDB tries to allocate memory.
How could I check why this plan is not finishing?
What functions should I implement to enable JIT?
I am sending the logs of the issue below.
On linux, we allocate memory by setting up the inferior registers to appear as if the inferior called mmap(2) upon resume. This is done in InferiorCallMmap. You should check whether this function sets up the context correctly. Things to look at are:
- did it find the mmap address correctly?
- are the mmap flags correct
- is ABI correct (did it put the flags in the right registers)
- after mmap returns, it should jump to the process entry point (where we have placed a breakpoint). Does this happen?
- do you correctly restore the original registers afterwards
Looking at the gdb-remote packet log should give you some insight there. If you can send the relevant parts over, I can give you a rough answer as to how far along did it progress before things broke down.