diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2023-07-26 19:03:47 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2023-07-26 19:04:23 +0000 |
| commit | 7fa27ce4a07f19b07799a767fc29416f3b625afb (patch) | |
| tree | 27825c83636c4de341eb09a74f49f5d38a15d165 /lldb/source/Expression/LLVMUserExpression.cpp | |
| parent | e3b557809604d036af6e00c60f012c2025b59a5e (diff) | |
Diffstat (limited to 'lldb/source/Expression/LLVMUserExpression.cpp')
| -rw-r--r-- | lldb/source/Expression/LLVMUserExpression.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/lldb/source/Expression/LLVMUserExpression.cpp b/lldb/source/Expression/LLVMUserExpression.cpp index 6d11abbf876f..9d01bfcb7220 100644 --- a/lldb/source/Expression/LLVMUserExpression.cpp +++ b/lldb/source/Expression/LLVMUserExpression.cpp @@ -23,6 +23,7 @@ #include "lldb/Symbol/SymbolVendor.h" #include "lldb/Symbol/Type.h" #include "lldb/Symbol/VariableList.h" +#include "lldb/Target/ABI.h" #include "lldb/Target/ExecutionContext.h" #include "lldb/Target/Process.h" #include "lldb/Target/StackFrame.h" @@ -34,6 +35,7 @@ #include "lldb/Utility/Log.h" #include "lldb/Utility/StreamString.h" +using namespace lldb; using namespace lldb_private; char LLVMUserExpression::ID; @@ -333,7 +335,14 @@ bool LLVMUserExpression::PrepareToExecuteJITExpression( if (m_can_interpret && m_stack_frame_bottom == LLDB_INVALID_ADDRESS) { Status alloc_error; - const size_t stack_frame_size = 512 * 1024; + size_t stack_frame_size = target->GetExprAllocSize(); + if (stack_frame_size == 0) { + ABISP abi_sp; + if (process && (abi_sp = process->GetABI())) + stack_frame_size = abi_sp->GetStackFrameSize(); + else + stack_frame_size = 512 * 1024; + } const bool zero_memory = false; |
