forked from OSchip/llvm-project
If we got what looks like a single step exception but we weren't single stepping then just report
the raw exception. llvm-svn: 166859
This commit is contained in:
parent
668bf82658
commit
4dc613b364
|
@ -365,7 +365,8 @@ StopInfoMachException::CreateStopReasonWithMachException
|
|||
return StopInfo::CreateStopReasonWithWatchpointID(thread, wp_sp->GetID());
|
||||
}
|
||||
// EXC_ARM_DA_DEBUG seems to be reused for EXC_BREAKPOINT as well as EXC_BAD_ACCESS
|
||||
return StopInfo::CreateStopReasonToTrace(thread);
|
||||
if (thread.GetTemporaryResumeState() == eStateStepping)
|
||||
return StopInfo::CreateStopReasonToTrace(thread);
|
||||
}
|
||||
else if (exc_code == 1)
|
||||
{
|
||||
|
@ -405,7 +406,8 @@ StopInfoMachException::CreateStopReasonWithMachException
|
|||
return StopInfoSP();
|
||||
}
|
||||
|
||||
if (is_trace_if_software_breakpoint_missing)
|
||||
// Don't call this a trace if we weren't single stepping this thread.
|
||||
if (is_trace_if_software_breakpoint_missing && thread.GetTemporaryResumeState() == eStateStepping)
|
||||
{
|
||||
return StopInfo::CreateStopReasonToTrace (thread);
|
||||
}
|
||||
|
|
|
@ -1588,9 +1588,13 @@ ProcessGDBRemote::SetThreadStopInfo (StringExtractor& stop_packet)
|
|||
}
|
||||
else
|
||||
{
|
||||
// TODO: check for breakpoint or trap opcode in case there is a hard
|
||||
// coded software trap
|
||||
gdb_thread->SetStopInfo (StopInfo::CreateStopReasonToTrace (*thread_sp));
|
||||
// If we were stepping then assume the stop was the result of the trace. If we were
|
||||
// not stepping then report the SIGTRAP.
|
||||
// FIXME: We are still missing the case where we single step over a trap instruction.
|
||||
if (gdb_thread->GetTemporaryResumeState() == eStateStepping)
|
||||
gdb_thread->SetStopInfo (StopInfo::CreateStopReasonToTrace (*thread_sp));
|
||||
else
|
||||
gdb_thread->SetStopInfo (StopInfo::CreateStopReasonWithSignal(*thread_sp, signo));
|
||||
}
|
||||
}
|
||||
if (!handled)
|
||||
|
|
Loading…
Reference in New Issue