summaryrefslogtreecommitdiffstats
path: root/lldb/source/API
diff options
context:
space:
mode:
authorJim Ingham <jingham@apple.com>2012-05-11 23:47:32 +0000
committerJim Ingham <jingham@apple.com>2012-05-11 23:47:32 +0000
commit7ba6e991583603e0dbeb632a9086a9f9fbf5445c (patch)
tree600187733c0ecfc1bb7034a2d940c81a57be710e /lldb/source/API
parent87a170c1e60f0b0c109f4c94a96e4ba43ac160cb (diff)
downloadbcm5719-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.cpp7
-rw-r--r--lldb/source/API/SBThread.cpp12
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;
OpenPOWER on IntegriCloud