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>


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@172503 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/scripts/Python/interface/SBExpressionOptions.i b/scripts/Python/interface/SBExpressionOptions.i
index 3190402..87e3ffe 100644
--- a/scripts/Python/interface/SBExpressionOptions.i
+++ b/scripts/Python/interface/SBExpressionOptions.i
@@ -41,6 +41,14 @@
     void
     SetUnwindOnError (bool unwind = false);
     
+    bool
+    GetIgnoreBreakpoints () const;
+    
+    %feature("docstring", "Sets whether to ignore breakpoint hits while running expressions.") SetUnwindOnError;
+    
+    void
+    SetIgnoreBreakpoints (bool ignore = false);
+    
     lldb::DynamicValueType
     GetFetchDynamicValue () const;