Fixed some issues with ARM backtraces by not processing any push/pop

instructions if they are conditional. Also fixed issues where the PC wasn't
getting bit zero stripped for ARM targets when a stack frame was thumb. We
now properly call through the GetOpcodeLoadAddress() functions to make sure
the addresses are properly stripped for any targets that may decorate up
their addresses.

We now don't pass the SIGSTOP signals along. We can revisit this soon, but
currently this was interfering with debugging some older ARM targets that
don't have vCont support in the GDB server.

llvm-svn: 134461
This commit is contained in:
Greg Clayton
2011-07-06 04:07:21 +00:00
parent a98034a25e
commit 34132754bd
12 changed files with 424 additions and 232 deletions

View File

@@ -258,7 +258,7 @@ SBFrame::GetPC () const
if (m_opaque_sp)
{
Mutex::Locker api_locker (m_opaque_sp->GetThread().GetProcess().GetTarget().GetAPIMutex());
addr = m_opaque_sp->GetFrameCodeAddress().GetLoadAddress (&m_opaque_sp->GetThread().GetProcess().GetTarget());
addr = m_opaque_sp->GetFrameCodeAddress().GetOpcodeLoadAddress (&m_opaque_sp->GetThread().GetProcess().GetTarget());
}
LogSP log(GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));