Add a user settings controller to Thread.  Then added a step-avoid-regexp setting
which controls whether to stop in a function matching the regexp.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@113335 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Target/ThreadPlanStepInRange.cpp b/source/Target/ThreadPlanStepInRange.cpp
index b95b35e..ecdb6fa 100644
--- a/source/Target/ThreadPlanStepInRange.cpp
+++ b/source/Target/ThreadPlanStepInRange.cpp
@@ -156,7 +156,13 @@
 {
     StackFrame *frame = GetThread().GetStackFrameAtIndex(0).get();
 
-    if (m_avoid_regexp_ap.get() != NULL)
+    RegularExpression *avoid_regexp_to_use;
+    
+    avoid_regexp_to_use = m_avoid_regexp_ap.get();
+    if (avoid_regexp_to_use == NULL)
+        avoid_regexp_to_use = GetThread().GetSymbolsToAvoidRegexp();
+        
+    if (avoid_regexp_to_use != NULL)
     {
         SymbolContext sc = frame->GetSymbolContext(eSymbolContextSymbol);
         if (sc.symbol != NULL)
@@ -164,7 +170,7 @@
             const char *unnamed_symbol = "<UNKNOWN>";
             const char *sym_name = sc.symbol->GetMangled().GetName().AsCString(unnamed_symbol);
             if (strcmp (sym_name, unnamed_symbol) != 0)
-               return m_avoid_regexp_ap->Execute(sym_name);
+               return avoid_regexp_to_use->Execute(sym_name);
         }
     }
     return false;