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;