{
const char *frame_function_name = sc.GetFunctionName().GetCString();
if (frame_function_name)
- return avoid_regexp_to_use->Execute(frame_function_name);
+ {
+ bool return_value = avoid_regexp_to_use->Execute(frame_function_name);
+ if (return_value)
+ {
+ LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_STEP));
+ if (log)
+ log->Printf ("Stepping out of function %s because it matches the avoid regexp \"%s\".",
+ frame_function_name,
+ avoid_regexp_to_use->GetText());
+
+ }
+ return return_value;
+ }
}
}
return false;
{
bool should_step_out = false;
StackFrame *frame = current_plan->GetThread().GetStackFrameAtIndex(0).get();
+ LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_STEP));
if (flags.Test(eAvoidNoDebug))
{
if (!frame->HasDebugInformation())
{
- LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_STEP));
if (log)
log->Printf ("Stepping out of frame with no debug info");
else if (strstr (function_name, target_name) == NULL)
should_step_out = true;
}
+ if (log && should_step_out)
+ log->Printf("Stepping out of frame %s which did not match step into target %s.",
+ sc.GetFunctionName().AsCString(),
+ step_in_range_plan->m_step_into_target.AsCString());
}
}
if (!should_step_out)
{
- ThreadPlanStepInRange *step_in_range_plan = static_cast<ThreadPlanStepInRange *> (current_plan);
- should_step_out = step_in_range_plan->FrameMatchesAvoidRegexp ();
+ ThreadPlanStepInRange *step_in_range_plan = static_cast<ThreadPlanStepInRange *> (current_plan);
+ // Don't log the should_step_out here, it's easier to do it in FrameMatchesAvoidRegexp.
+ should_step_out = step_in_range_plan->FrameMatchesAvoidRegexp ();
}
}