Separated the "expr --unwind-on-error" behavior into two parts, actual errors (i.e. crashes) which continue to be

controlled by the --unwind-on-error flag, and --ignore-breakpoint which separately controls behavior when a called
function hits a breakpoint.  For breakpoints, we don't unwind, we either stop, or ignore the breakpoint, which makes
more sense.  
Also make both these behaviors globally settable through "settings set".
Also handle the case where a breakpoint command calls code that ends up re-hitting the breakpoint.  We were recursing
and crashing.  Now we just stop without calling the second command.

<rdar://problem/12986644>
<rdar://problem/9119325>

llvm-svn: 172503
This commit is contained in:
Jim Ingham
2013-01-15 02:47:48 +00:00
parent ed1950719b
commit 184e981111
28 changed files with 424 additions and 104 deletions

View File

@@ -65,6 +65,18 @@ SBExpressionOptions::SetUnwindOnError (bool unwind)
m_opaque_ap->SetUnwindOnError (unwind);
}
bool
SBExpressionOptions::GetIgnoreBreakpoints () const
{
return m_opaque_ap->DoesIgnoreBreakpoints ();
}
void
SBExpressionOptions::SetIgnoreBreakpoints (bool ignore)
{
m_opaque_ap->SetIgnoreBreakpoints (ignore);
}
lldb::DynamicValueType
SBExpressionOptions::GetFetchDynamicValue () const
{