summaryrefslogtreecommitdiffstats
path: root/lldb/source/Target/Thread.cpp
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2010-06-12 18:59:55 +0000
committerGreg Clayton <gclayton@apple.com>2010-06-12 18:59:55 +0000
commit474966a41eed50f8833d6607afb2e0164a17800f (patch)
treeab1623a8c9e2c5548aede2f131e9ca4b3a6d1513 /lldb/source/Target/Thread.cpp
parenta84b380d46fa71bb6e23b310c85e4e65a0fd87b8 (diff)
downloadbcm5719-llvm-474966a41eed50f8833d6607afb2e0164a17800f.tar.gz
bcm5719-llvm-474966a41eed50f8833d6607afb2e0164a17800f.zip
I have eliminated RTTI from LLDB!
Also added a shell script build phase that fixes the headers in LLDB.framework. llvm-svn: 105899
Diffstat (limited to 'lldb/source/Target/Thread.cpp')
-rw-r--r--lldb/source/Target/Thread.cpp31
1 files changed, 26 insertions, 5 deletions
diff --git a/lldb/source/Target/Thread.cpp b/lldb/source/Target/Thread.cpp
index 2f852cc3eae..068cc392f7d 100644
--- a/lldb/source/Target/Thread.cpp
+++ b/lldb/source/Target/Thread.cpp
@@ -419,9 +419,15 @@ Thread::SetupForResume ()
// Note, don't assume there's a ThreadPlanStepOverBreakpoint, the target may not require anything
// special to step over a breakpoint.
- ThreadPlan *cur_plan = GetCurrentPlan();
- ThreadPlanStepOverBreakpoint *step_over_bp = dynamic_cast<ThreadPlanStepOverBreakpoint *> (cur_plan);
- if (step_over_bp == NULL)
+ // TODO: Jim Ingham -- this is the only place left that does RTTI in
+ // all of LLDB. I am adding a hack right now to let us compile
+ // without RTTI, but we will need to look at and fix this. Right
+ // now it will always push the breakpoint thread plan which is
+ // probably wrong. We will need to work around this.
+
+// ThreadPlan *cur_plan = GetCurrentPlan();
+// ThreadPlanStepOverBreakpoint *step_over_bp = dynamic_cast<ThreadPlanStepOverBreakpoint *> (cur_plan);
+// if (step_over_bp == NULL)
{
ThreadPlanSP step_bp_plan_sp (new ThreadPlanStepOverBreakpoint (*this));
@@ -861,11 +867,26 @@ Thread::QueueThreadPlanForStepSingleInstruction (bool step_over, bool abort_othe
}
ThreadPlan *
-Thread::QueueThreadPlanForStepRange (bool abort_other_plans, StepType type, const AddressRange &range, const SymbolContext &addr_context, lldb::RunMode stop_other_threads)
+Thread::QueueThreadPlanForStepRange
+(
+ bool abort_other_plans,
+ StepType type,
+ const AddressRange &range,
+ const SymbolContext &addr_context,
+ lldb::RunMode stop_other_threads,
+ bool avoid_code_without_debug_info
+)
{
ThreadPlanSP thread_plan_sp;
if (type == eStepTypeInto)
- thread_plan_sp.reset (new ThreadPlanStepInRange (*this, range, addr_context, stop_other_threads));
+ {
+ ThreadPlanStepInRange *plan = new ThreadPlanStepInRange (*this, range, addr_context, stop_other_threads);
+ if (avoid_code_without_debug_info)
+ plan->GetFlags().Set (ThreadPlanShouldStopHere::eAvoidNoDebug);
+ else
+ plan->GetFlags().Clear (ThreadPlanShouldStopHere::eAvoidNoDebug);
+ thread_plan_sp.reset (plan);
+ }
else
thread_plan_sp.reset (new ThreadPlanStepOverRange (*this, range, addr_context, stop_other_threads));
OpenPOWER on IntegriCloud