diff options
| author | Jim Ingham <jingham@apple.com> | 2012-05-11 23:47:32 +0000 |
|---|---|---|
| committer | Jim Ingham <jingham@apple.com> | 2012-05-11 23:47:32 +0000 |
| commit | 7ba6e991583603e0dbeb632a9086a9f9fbf5445c (patch) | |
| tree | 600187733c0ecfc1bb7034a2d940c81a57be710e /lldb/source/API | |
| parent | 87a170c1e60f0b0c109f4c94a96e4ba43ac160cb (diff) | |
| download | bcm5719-llvm-7ba6e991583603e0dbeb632a9086a9f9fbf5445c.tar.gz bcm5719-llvm-7ba6e991583603e0dbeb632a9086a9f9fbf5445c.zip | |
Found one more place where the OkayToDiscard needs to be consulted.
Also changed the defaults for SBThread::Step* to not delete extant plans.
Also added some test cases to test more complex stepping scenarios.
llvm-svn: 156667
Diffstat (limited to 'lldb/source/API')
| -rw-r--r-- | lldb/source/API/SBFrame.cpp | 7 | ||||
| -rw-r--r-- | lldb/source/API/SBThread.cpp | 12 |
2 files changed, 12 insertions, 7 deletions
diff --git a/lldb/source/API/SBFrame.cpp b/lldb/source/API/SBFrame.cpp index 27c07ef15d5..b38fa3dceb4 100644 --- a/lldb/source/API/SBFrame.cpp +++ b/lldb/source/API/SBFrame.cpp @@ -1028,6 +1028,12 @@ SBFrame::EvaluateExpression (const char *expr) SBValue SBFrame::EvaluateExpression (const char *expr, lldb::DynamicValueType fetch_dynamic_value) { + return EvaluateExpression (expr, fetch_dynamic_value, true); +} + +SBValue +SBFrame::EvaluateExpression (const char *expr, lldb::DynamicValueType fetch_dynamic_value, bool unwind_on_error) +{ LogSP log(GetLogIfAllCategoriesSet (LIBLLDB_LOG_API)); LogSP expr_log(GetLogIfAllCategoriesSet (LIBLLDB_LOG_EXPRESSIONS)); @@ -1056,7 +1062,6 @@ SBFrame::EvaluateExpression (const char *expr, lldb::DynamicValueType fetch_dyna expr, fetch_dynamic_value, frame_description.GetString().c_str()); const bool coerce_to_id = false; - const bool unwind_on_error = true; const bool keep_in_memory = false; exe_results = target->EvaluateExpression (expr, diff --git a/lldb/source/API/SBThread.cpp b/lldb/source/API/SBThread.cpp index 7d8398daec7..b831a4fcb89 100644 --- a/lldb/source/API/SBThread.cpp +++ b/lldb/source/API/SBThread.cpp @@ -531,7 +531,7 @@ SBThread::StepOver (lldb::RunMode stop_other_threads) { Mutex::Locker api_locker (exe_ctx.GetTargetPtr()->GetAPIMutex()); Thread *thread = exe_ctx.GetThreadPtr(); - bool abort_other_plans = true; + bool abort_other_plans = false; StackFrameSP frame_sp(thread->GetStackFrameAtIndex (0)); ThreadPlan *new_plan = NULL; @@ -574,7 +574,7 @@ SBThread::StepInto (lldb::RunMode stop_other_threads) if (exe_ctx.HasThreadScope()) { Mutex::Locker api_locker (exe_ctx.GetTargetPtr()->GetAPIMutex()); - bool abort_other_plans = true; + bool abort_other_plans = false; Thread *thread = exe_ctx.GetThreadPtr(); StackFrameSP frame_sp(thread->GetStackFrameAtIndex (0)); @@ -616,7 +616,7 @@ SBThread::StepOut () if (exe_ctx.HasThreadScope()) { Mutex::Locker api_locker (exe_ctx.GetTargetPtr()->GetAPIMutex()); - bool abort_other_plans = true; + bool abort_other_plans = false; bool stop_other_threads = true; Thread *thread = exe_ctx.GetThreadPtr(); @@ -651,7 +651,7 @@ SBThread::StepOutOfFrame (lldb::SBFrame &sb_frame) if (exe_ctx.HasThreadScope()) { Mutex::Locker api_locker (exe_ctx.GetTargetPtr()->GetAPIMutex()); - bool abort_other_plans = true; + bool abort_other_plans = false; bool stop_other_threads = true; Thread *thread = exe_ctx.GetThreadPtr(); @@ -703,7 +703,7 @@ SBThread::RunToAddress (lldb::addr_t addr) if (exe_ctx.HasThreadScope()) { Mutex::Locker api_locker (exe_ctx.GetTargetPtr()->GetAPIMutex()); - bool abort_other_plans = true; + bool abort_other_plans = false; bool stop_other_threads = true; Address target_addr (addr); @@ -806,7 +806,7 @@ SBThread::StepOverUntil (lldb::SBFrame &sb_frame, AddressRange fun_range = frame_sc.function->GetAddressRange(); std::vector<addr_t> step_over_until_addrs; - const bool abort_other_plans = true; + const bool abort_other_plans = false; const bool stop_other_threads = true; const bool check_inlines = true; const bool exact = false; |

