bulbazord requested changes to this revision.
bulbazord added a comment.
This revision now requires changes to proceed.
Mostly looks good to me, just a small thing about an implementation detail.
================
Comment at: lldb/source/Expression/LLVMUserExpression.cpp:38
+using namespace lldb;
using namespace lldb_private;
----------------
What in this file uses something from the lldb namespace now?
================
Comment at: lldb/source/Expression/LLVMUserExpression.cpp:340-348
+ Process *process_sp;
+ ABISP abi_sp;
+ if ((process_sp = exe_ctx.GetProcessPtr()) &&
+ (abi_sp = process_sp->GetABI())) {
+ stack_frame_size = abi_sp->GetStackFrameSize();
+ } else {
+ stack_frame_size = 512 * 1024;
----------------
A few things:
- I don't think you need to re-extract process from `exe_ctx`, the variable
`process` at the beginning of this function should have a valid Process pointer
in it already (see: `LockAndCheckContext` at the beginning of this function).
We already assume `target` is valid and use it in the same way.
- If we can't get an ABI from the Process, do we want to assume a stack frame
size of `512 * 1024`? Maybe there is a use case I'm missing, but if we don't
have an ABI I'm not convinced that `PrepareToExecuteJITExpression` should
succeed. LLDB will need some kind of ABI information to correctly set up the
register context to call the JITed code anyway.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D149262/new/
https://reviews.llvm.org/D149262
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits