diff options
author | Greg Clayton <gclayton@apple.com> | 2010-06-12 18:59:55 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2010-06-12 18:59:55 +0000 |
commit | 474966a41eed50f8833d6607afb2e0164a17800f (patch) | |
tree | ab1623a8c9e2c5548aede2f131e9ca4b3a6d1513 /lldb/source/Target/Thread.cpp | |
parent | a84b380d46fa71bb6e23b310c85e4e65a0fd87b8 (diff) | |
download | bcm5719-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.cpp | 31 |
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)); |