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
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to